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é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
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 :)