Snippet #23 ~ PHP: Trouver les jours fériés (fixes et mouvants)
lundi 16 septembre 2013 à 01:22Voila une petite fonction PHP permettant de définir si la date fournie en paramètre (au format timestamp) est un jour férié ou non.
Cette fonction retourne true si le jour est férié, false dans le cas contraire
?php /** * Cette fonction retourne un tableau de timestamp correspondant * aux jours fériés en France pour une année donnée. */ function isNotWorkable($date) { if ($date === null) { $date = time(); } $date = strtotime(date('m/d/Y',$date)); $year = date('Y',$date); $easterDate = easter_date($year); $easterDay = date('j', $easterDate); $easterMonth = date('n', $easterDate); $easterYear = date('Y', $easterDate); $holidays = array( // Dates fixes mktime(0, 0, 0, 1, 1, $year), // 1er janvier mktime(0, 0, 0, 5, 1, $year), // Fête du travail mktime(0, 0, 0, 5, 8, $year), // Victoire des alliés mktime(0, 0, 0, 7, 14, $year), // Fête nationale mktime(0, 0, 0, 8, 15, $year), // Assomption mktime(0, 0, 0, 11, 1, $year), // Toussaint mktime(0, 0, 0, 11, 11, $year), // Armistice mktime(0, 0, 0, 12, 25, $year), // Noel // Dates variables mktime(0, 0, 0, $easterMonth, $easterDay + 1, $easterYear), mktime(0, 0, 0, $easterMonth, $easterDay + 39, $easterYear), mktime(0, 0, 0, $easterMonth, $easterDay + 50, $easterYear), ); return in_array($date, $holidays); } ?>
Petit exemple d’utilisation :
<?php if(isNotWorkable(time())){ echo 'Nous sommes un jour férié !! Apéro !!'; }else{ echo 'Nous sommes un jour normal, au boulot :p'; } ?>