Rajouter 48h a une date

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ZelkiN, 22 Septembre 2010.

  1. ZelkiN
    ZelkiN WRInaute occasionnel
    Inscrit:
    27 Juillet 2007
    Messages:
    463
    J'aime reçus:
    0
    Bonjour à vous tous, ca fait plaisir de vous retrouver après quelques vacances :)

    J'ai besoin de vous comme vous vous en doutez, mon problème est le suivant:

    J'ai une date format 22/09/2010 sur laquelle je voudrai ajouter 48h, mais attention je veux ajouter 48h de jours ouvrés autrement dit hors samedi et dimanche. Donc en gros ca peut être 48h, mais ca peut etre aussi 72h si le client commande Jeudi ou 90h si la commande est passé vendredi.

    Comment faire ca ?! J'en ai absolument aucune idée, tout est bon dans le cochon oups pardon dans le PHP :D

    Merci
     
  2. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    Code:
    <?php
    function getEaster ($iYear = null) {
        if (is_null ($iYear)) {
            $iYear = (int)date ('Y');
        }
        $iN = $iYear - 1900;
        $iA = $iN%19;
        $iB = floor (((7*$iA)+1)/19);
        $iC = ((11*$iA)-$iB+4)%29;
        $iD = floor ($iN/4);
        $iE = ($iN-$iC+$iD+31)%7;
        $iResult = 25-$iC-$iE;
        if ($iResult > 0) {
            $iEaster = strtotime ($iYear.'/04/'.$iResult);
        } else {
            $iEaster = strtotime ($iYear.'/03/'.(31+$iResult));
        }
        return $iEaster;
    }
    echo 'Paques : ', date ('d-m-Y', getEaster (2006));
    echo '<br />';
    function getNextOpenDay ($iDate, $iDays) {
        $aBankHolidays = array (
            '1_1',
            '1_5',
            '8_5',
            '14_7',
            '15_8',
            '1_11',
            '11_11',
            '25_12'
            );
        if (function_exists ('easter_date')) {
            $iEaster = easter_date ((int)date('Y'), $iDate);
        } else {
            $iEaster = getEaster ((int)date('Y'), $iDate);
        }
        $aBankHolidays[] = date ('j_n',$iEaster);
        $aBankHolidays[] = date ('j_n', $iEaster + (86400*39));
        $aBankHolidays[] = date ('j_n', $iEaster + (86400*49));
        print_r ($aBankHolidays);
        $iEnd = $iDays * 86400;
        $i = 0;
        while ($i < $iEnd) {
            $i = strtotime ('+1 day', $i);
            if (in_array (date ('w', $iDate+$i),array (0,6) ) || in_array (date ('j_n', $iDate+$i), $aBankHolidays)) {
                $iEnd = strtotime ('+1 day', $iEnd);
                $iDays ++;
            }
        }
        return $iDays;
    }
    $iDate = strtotime ('2006-06-30');
    $iDays = getNextOpenDay ($iDate, 2);
    echo 'Prochain jour ouvrable à partir du 30/06/2006, avec un delta de 2 jours : ', date ('d/m/Y', $iDate + (86400*$iDays));
    ?>
    
    Trouve le prochain jour ouvré, en fonction d'une date et d'un delta en jours.
    Par exemple, on passe une commande le 12 juillet 2006, l'envoi dure 2 jours. getNextOpenDay va renvoyer 5 jours, on recevra donc notre commande le 17, car 2 jours après le 12 juille, c'est le 14 (férié), qui est un vendredi. Samedi et dimanche sont non ouvrables, on arrive donc au lundi 7.

    getNextOpenDay ($iDate, $iDays) :
    $iDate = timestamp de la date
    $iDays = nombre de jours de delta

    Peace
     
  3. alain78france
    alain78france WRInaute occasionnel
    Inscrit:
    1 Mars 2006
    Messages:
    465
    J'aime reçus:
    0
    Bonjour à tous,

    Zelkin ta demande parait parfaite pour l'application de la loi Carrez dans l'e-commerce.
    (Attention à la notion des 48 h cela pourrait être court en cas d'événement imprévu).

    Cordialement
    Alain
     
Chargement...
Similar Threads - Rajouter 48h date Forum Date
je vais rajouter une page web dans mon site avec des rubriques est alors je peux... Débuter en référencement 27 Février 2017
Duplicate content : on peut rajouter des / à la fin de mes url Débuter en référencement 2 Octobre 2016
Bien référencer un site artisanal sans rajouter des créations à tout va? Référencement Google 4 Novembre 2015
Rajouter un onglet à un menu Développement d'un site Web ou d'une appli mobile 11 Août 2015
Rajouter une chaine de caractères sur plus de 10000 pages peut il pénaliser ? Débuter en référencement 9 Janvier 2014
rajouter les www à ma boutique dans la barre d'adresse URL Rewriting et .htaccess 11 Octobre 2013
Rajouter de nouvelles pages sur mon site Débuter en référencement 26 Septembre 2013
Rajouter bouton imprimante sur une page web Débuter en référencement 22 Janvier 2013
Le fait de rajouter des mots clés dans la balise Title influence et H1? Débuter en référencement 28 Juillet 2012
Enlever certains produits, les rajouter ensuite sur le site pour booster référencement? Débuter en référencement 7 Juillet 2011