Bonjour à tous,
J'ai une série d'événement qui sont défini par une date de début et une date de fin.
J'ai aussi un peit formulaire ou j'indique une date.
Cette fonction va comparer si la date choici se trouve entre la date de début et la date de fin
Le problème que j'arrive pas résoudre, c'est que dois modifier mon critere de recherche. C'est a dire, on ne veux plus sélectionner une date comme '2016-12-06 20:10:00" mais un mois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 compateTime(new DateTime($stage_start), new DateTime($stage_end), new DateTime($date)) function compateTime($a, $b, $c){ $c1 = $c->setTime(23, 59, 59); ($a < $c1) ? $compare_deb = true : $compare_deb = false; $c2 = $c->setTime(00,00,01); ($c2 < $b) ? $compare_fin = true : $compare_fin = false; if($compare_deb==true && $compare_fin==true){ return true; }else{ // echo "FALSE<br>"; return false; } }
Et je n'arrive pas à modifier ma fonction, ci-dessus.
Ce que j'ai essayer de faire est le suivant
Mais là ca bug car à mois doit etre sous ce fomat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $mois="02"; compateTime(new DateTime($stage_start), new DateTime($stage_end), $mois) function compateTime($a, $b, $c){ $c1 = $c->setTime(23, 59, 59); ($a < $c1) ? $compare_deb = true : $compare_deb = false; $c2 = $c->setTime(00,00,01); ($c2 < $b) ? $compare_fin = true : $compare_fin = false; if($compare_deb==true && $compare_fin==true){ return true; }else{ // echo "FALSE<br>"; return false; } }
$mois ="2016-".$mois."-01 20:10:10".
L'autre problème, c'est que si je recherche mes événements pas lieu et que je laisse mon critere de recherche par mois, vide, j'aurai
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part $mois ="2016-00-01 20:10:10";
ce qui n'est pas correct car le mois 00 n'existe pas, et l'autre format n'est pas valide..
Code : Sélectionner tout - Visualiser dans une fenêtre à part $mois ="2016--01 20:10:10".
Aussi, dans ma fonction CompareTime(), je dois aussi modifier $a et $b, pour que le jour de $a soit modifier à 01, pour le premier jour du mois, et $b soit modifier pour le jour soit le dernier jour du mois.
Et que se passe-t-il si je met 31 et qu'on filtre le mois de février?
Alors j'aimerais savoir comment vous modiferiez ce code
pour que le fonction me retourne true si le mois de la date de début ou le mois la date de fin est identique à $c, soit 02, dans ce cas?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $mois = "02"; compateTime(new DateTime($stage_start), new DateTime($stage_end), $mois) function compateTime($a, $b, $c){ $c1 = $c->setTime(23, 59, 59); // Ca ne jouera pas ($a < $c1) ? $compare_deb = true : $compare_deb = false; $c2 = $c->setTime(00,00,01); ($c2 < $b) ? $compare_fin = true : $compare_fin = false; if($compare_deb==true && $compare_fin==true){ return true; }else{ // echo "FALSE<br>"; return false; } }
Y-a-t-il pas un moyen d'extraire la mois de $a et le mois de $b pour après simplement le comparer avec $c?
Merci pour vos lumières
Partager