j'aimerais récupéré dans ma page les jours fériés deja calculés par la fonction ( donc en dehors de celle ci ) est ce possible ? comment Faire ?
je voudrais afficher par exemple la variable $an.
Merci d'avance.
je vous poste le 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[] = $year.'-01-01'; // Jour de l'an
$arr_bank_holidays[] = $year.'-05-01'; // Fete du travail
$arr_bank_holidays[] = $year.'-05-08'; // Victoire 1945
$arr_bank_holidays[] = $year.'-07-14'; // Fete nationale
$arr_bank_holidays[] = $year.'-08-15'; // Assomption
$arr_bank_holidays[] = $year.'-11-01'; // Toussaint
$arr_bank_holidays[] = $year.'-11-11'; // Armistice 1918
$arr_bank_holidays[] = $year.'-12-25'; // Noel
// Récupération de paques. Permet ensuite d'obtenir le jour de l'ascension et celui de la pentecote
$easter = easter_date($year);
$arr_bank_holidays[] = date($year.'-m-d', $easter + 86400); // Paques
$arr_bank_holidays[] = date($year.'-m-d', $easter + (86400*39)); // Ascension
$arr_bank_holidays[] = date($year.'-m-d', $easter + (86400*50)); // Pentecote
$an=$arr_bank_holidays[0];
}
//
$nb_days_open = 0;
// Mettre <= si on souhaite prendre en compte le dernier jour dans le décompte
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 = mktime(date('H', $date_start), date('i', $date_start), date('s', $date_start), date('m', $date_start), date('d', $date_start) + 1, date('Y', $date_start));
}
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('2016-07-11');
$date_fin = strtotime('2016-07-20');
$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);
?>