Bonjours ,
Alors je dois faire un calendrier et en fonction de la date je borne du lundi au vendredi .
En ayant chercher sur le net j'ai trouver plusieurs solution en utilisant "timestamp"/"mktime".
J'ai décidé d'utiliser le jour de la semaine et d'appliquer un DateIntervale (pas vraiment certain que c'est fait pour cela).
Et voila le code
Le soucis viens du dernier elseif qui traite la fin de semaine , il ne suit aucune logique " j'ai trouver P4D de façon empirique".
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 try { $fuseau="Europe/Paris"; $tz = new DateTimeZone($fuseau); } catch(Exception $e) { exit($e->getMessage()); } $date= new DateTime("now",$tz); $date_format=$date->format('d-m-Y'); $jours=$date->format("N"); //Traitement de debut semaine if ($jours==1) { $debut=$date_format; } elseif ($jours>1 && $jours<6) { $decal=$jours-1; $debut=$date->sub(new DateInterval("P".$decal."D")); $debut=$debut->format('d-m-Y'); } elseif ($jours>5) { $decal=(7-$jours)+1; $debut=$date->add(new DateInterval("P".$decal."D")); $debut=$debut->format('d-m-Y'); } //Traitement de fin semaine if ($jours<6) { $decal=4-$jour; $fin=$date->add(new DateInterval("P".$decal."D")); $fin=$fin->format('d-m-Y'); } elseif($jours>5) { $fin=$date->add(new DateInterval("P4D")); $fin=$fin->format('d-m-Y'); }
Le traitement des jours weekend renvois au vendredi prochain , mais la logique voudrais que j'ajoute 6 ou 5 jours a la date dans le cas ou on tombe sur un samedi ou un dimanche .
Dans mon cas il faut un P4D dans tout les cas pour avoir le vendredi prochains , Pourquoi ???
Merci !!!
Partager