[Calendrier] PHP me fait de la magie ! Bug ?

Par tbm, il y a 10 ans


Bonsoir,

J'ai un problème plutôt hallucinant: J'essaie de faire un calendrier scolaire pour une association ou les parents pourront cocher les jours ou leur(s) enfant(s) iront à la cantine.

J'ai donc suivi le tutoriel "Calendrier" de Grafikart en le modifiant un peu à ma guise... Mais j'ai un bug chelou !

Lorsque j'affiche une première fois, le jour d'une date, il m'affiche le bon chiffre
Par ex : Pour le 1er Septembre il m'affiche 2 pour Mardi
Mais après une transmission de la variable dans un tableau, il me décale de 2 ce jour !
Pour le 1er Septembre il m'affiche 4 pour Mercredi

BUG ou PAS BUG selon vous ? Dans les deux cas, n'hésitez pas à répondre ;)
Voici mon script :

function maFonction(){ $year1 = '2015'; $year2 = '2016'; $date = new \DateTime($year1.'-09-01'); while($date->format('m') <= '08' || $date->format('Y') <= $year2){ $m = $date->format('m'); $d = $date->format('d'); $w = $date->format('w'); // M'affiche 02 (Mardi) pour le 1er septembre 2015 par ex var_dump($w); $c[$m][$d] = $w; $date->add(new \DateInterval('P1D')); } return $c; } // BUUUG ! M'affiche 04 (Jeudi) pour le 1er septembre 2015 var_dump($c);

2 réponses

Grafikart, il y a 10 ans

ton second var_dump étant hors de la boucle il va t'afficher le dernier jour qu'il a trouvé, donc (Jeudi) pour le 1er septembre 2016

tbm, il y a 10 ans

Désolé du double post mais tu as raison Grafikart O_o.

Après avoir lu et relu ton post, il semble me prendre le septembre de 2016 et non de 2015 !
Du coup il me met 4.

Mais je ne comprends pas alors pourquoi est stocké le 4 (Jeudi) de 2016 alors que dans la boucle, quand je var_dump($w); il me met bien le 2.
Comment éviter cela ?

EDIT : En imprimant toute les dates de mon calendrier, j'ai remarqué que mon calendrier s'arrêtait en 2017 et non en 2016.
L'année 2016 réecrivait par dessus l'année 2015

Problème résolu.
Merci :)