Bonjour tt le monde,
j'ai une fonction php Cette fonction calcule la différence entre deux date en éliminant les jour ouvrier.
voila mon code:

<?php
// Fonction permettant de compter le nombre de jours ouvrés entre deux dates
    function get_nb_open_days($date_start, $date_stop) {
    $arr_bank_holidays = array(); // Tableau des jours feriés

    // On boucle dans le cas où l'année de départ serait différente de l'année d'arrivée
    $diff_year = date('Y', $date_stop) - date('Y', $date_start);
    for ($i = 0; $i <= $diff_year; $i++) {
    $year = (int)date('Y', $date_start) + $i;
    // Liste des jours feriés
    $arr_bank_holidays[] = '1_1_'.$year; // Jour de l'an
    $arr_bank_holidays[] = '1_5_'.$year; // Fete du travail
    $arr_bank_holidays[] = '8_5_'.$year; // Victoire 1945
    $arr_bank_holidays[] = '14_7_'.$year; // Fete nationale
    $arr_bank_holidays[] = '15_8_'.$year; // Assomption
    $arr_bank_holidays[] = '1_11_'.$year; // Toussaint
    $arr_bank_holidays[] = '11_11_'.$year; // Armistice 1918
    $arr_bank_holidays[] = '25_12_'.$year; // Noel

    }
    //print_r($arr_bank_holidays);
    $nb_days_open = 0;
    while ($date_start < $date_stop) {
    // Si le jour suivant n'est ni un dimanche (0) ou un samedi (6), ni un jour férié, on incrémente les jours ouvrés
    if (!in_array(date('w', $date_start), array(0, 6))
    && !in_array(date('j_n_'.date('Y', $date_start), $date_start), $arr_bank_holidays)) {
    $nb_days_open++;
     }
     $date_start += 86400;
     }
    return $nb_days_open;
    }

    // Exemple : Du 11 au 15 juillet il n'y a qu'un jour ouvré (week-end + 1 jours férié)
     $date_depart = strtotime('2017-12-22');
     $date_fin = strtotime('2017-12-28');
     $nb_jours_ouvres = get_nb_open_days($date_depart, $date_fin);
    echo 'Il y a '.$nb_jours_ouvres.' jours ouvr&eacute;s entre le '.date('d/m/Y', $date_depart).' et le '.date('d/m/Y', $date_fin);
?>

Mon probleme ce que ma fonction a deux parameter et je veux appeler ma fonction dans un formalaire:

<form method="post" action="reservation.php" name="form1">
Date1 : <input type="text" name="date1" /><br /><br />
Date2 : <input type="text" name="date2" /><br /><br />
nombre jour : : <input type="text" name="jour" value="0" readonly /><br /><br />
<input type="button"  value="calculer nb jour" />
</form></body></html>

Et merci

3 réponses


Salut,

Il te faut récupérer les data dont tu as besoin que tu aura envoyé en POST via le tableau $_POST :

// Fais gaffe à bon check le format de date qui t'es renvoyé par le formulaire
$date_start = isset($_POST['date1']) ? strtotime($_POST['date1']) : null;
$date_end = isset($_POST['date2']) ? strtotime($_POST['date2']) : null;

if (!is_null($date_start) && !is_null($date_end)) {
    $nb_jours_ouvres = get_nb_open_days($date_start, $date_end);
}

Tout simplement :)

Tu as enregistré ta page en php ? ^^

hdfs99
Auteur

j'ai enregistré tt la page en .php