Semaine initiée au lundi - problème jour férié
Posté : 23 janv. 2020, 18:41
Bonjour !
J'ai besoin d'aide sur un point précis : j'ai un menu qui s'affiche dans un tableau et qui est initialisé au lundi.
Cependant, quand le lundi est férié, plus rien ne s'affiche. J'ai donc voulu créer un lundi vide quand celui-ci
est férié pour qu'il passe au mardi et s'affiche tout de même, sans succès pour l'instant.
Une petite idée du code :
Merci d'avance et bonne soirée !
J'ai besoin d'aide sur un point précis : j'ai un menu qui s'affiche dans un tableau et qui est initialisé au lundi.
Cependant, quand le lundi est férié, plus rien ne s'affiche. J'ai donc voulu créer un lundi vide quand celui-ci
est férié pour qu'il passe au mardi et s'affiche tout de même, sans succès pour l'instant.
Une petite idée du code :
define("SECPJR", 86400);
$now = time();
$njour = (int) ($now / SECPJR);
$nojour = date("w", $now);
$lun = $now - (($nojour - 1) * SECPJR);
$date_lundi = date("ymd", $lun);
$id = $_GET['menu-repas'] . '-' . $date_lundi;
unset ($_GET);
header ( "location: ../../../menu-repas/" . $id );
//----------------------------------------------------------------------------
// Insert les données des menus dans la BDD à partir de $data_menus
//----------------------------------------------------------------------------
function sql_insert_data_menus() {
global $error, $data_menus;
//----- Boucle de création des menus -----
// On boucle sur chaque ville-typeConvive
foreach ($data_menus as $ville_convive => $menus_ville_convive) {
$ferie = false;
// On boucle sur chaque jour
foreach ($menus_ville_convive as $date => $menus_date) {
// On teste si le jour est un lundi (1) --> si oui on lance la création du menu HTML
// La date est au format ymd-N : 20181113-1
$dateN = explode("-", $date) [1]; // jour de la semaine
$dateYmd = explode("-", $date) [0]; // date au format ymd
// si lundi : $dateN!=='1' est un jour férié : $ferie==true,
// alors on déclare un jour férié et on passe au jour suivant : $dateN!=='2'
if ($dateN == "1" || ($dateN == "2" && $ferie == true) ) {
if ($dateN == "2") {
$dateDay = substr($dateYmd, 4, 2);
$dateDay = intval($dateDay) - 1;
$lundi_ferieYmd = substr($dateYmd, 0, 4).$dateDay;
$dateYmd = $lundi_ferieYmd;
print($dateYmd);
}
$post_name = $ville_convive . "-" . $dateYmd;
if (explode('-', $post_name)[2] == "clsh") {
$post_name= rename_pdf_clsh($post_name)."-".$dateYmd;
}
//----- Fabrication du menu au format html
$ferie = false;
$html_menu = get_html_menu($ville_convive, $dateYmd);
//----- On échappe les caractères spéciaux pour l'insertion en BDD
$html_menu = mysqli_real_escape_string ($mysqli , $html_menu);
//----- Titre du menu
$date_menu = DateTime::createFromFormat ( "ymd" , $dateYmd);
$titre_menu = "Menu " . ucfirst(explode("-", $ville_convive) [0]) . " " .
ucfirst(explode("-", $ville_convive) [1]) . ", Semaine " . $date_menu->format("W") . ", du " .
$date_menu->format("d/m/Y");
$now = date('Y-m-d H:i:s');
$nowgmt = gmdate('Y-m-d H:i:s');
$guid = "";
} else {
$ferie = true;
}
}
}
$mysqli->close();
}
Merci d'avance et bonne soirée !