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

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 soucis viens du dernier elseif qui traite la fin de semaine , il ne suit aucune logique " j'ai trouver P4D de façon empirique".
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 !!!