Rechercher : dans
Par :

PHP Problème date passage heure été/hiver

Dernière réponse le 17 oct 2008 à 13:22:12 kthou, le 28 jui 2008 à 16:00:47 
 Signaler ce message aux modérateurs

Bonjour,

Je suis actuellement entrain de développer une application de gestion de planning en PHP, et j'ai un problème lors des jours de passage d'heure d'été à l'heure d'hiver, et lors du passage de l'heure d'hiver à l'heure d'été.

En effet lors de ces jours le programme crée des décalages dans la date.Par exemple, pour l'année 2008 il me génère 2 fois le 26/10/2008 : le jour du passage à l'heure d'hiver.

Les dates sont générées du lundi au dimanche, à partir d'une date passée en paramètre, grâce à ce code :

		$tabh = explode("-", $_POST['date']); // On récupère une date passé en paramètre
		$indY = intval($tabh[0]); // On récupère L'année
		$indM = intval($tabh[1]); //on récupère le mois		
		$indD = intval($tabh[2]); // on récupère le jour
		$oneweek = 7*60*60*24;	//Permet de générer la date de la semaine suivante
		$d=mktime(0,0,0,$indM,$indD,$indY); 
                $oneday = 60*60*24;  ////Permet de générer la date du jour suivant

                 for ($i = 0; $i < 7; $i++)
		{
			$date=date("d/m/Y",$d);
			switch ($i)
			{
				case 0 : echo "<b>Lundi </b><i>".$date."</i>"; break;
				case 1 : echo "<b>Mardi </b><i>".$date."</i>"; break;
				case 2 : echo "<b>Mercredi </b><i>".$date."</i>"; break;
				case 3 : echo "<b>Jeudi </b><i>".$date."</i>"; break;
				case 4 : echo "<b>Vendredi </b><i>".$date."</i>"; break;
				case 5 : echo "<b>Samedi </b><i>".$date."</i>"; break;
				case 6 : echo "<b>Dimanche</b><i> ".$date."</i>"; break;
			}	
				$date=date("Y-m-d",$d); On génére la date
				afficherPlanning($date, $_POST['site2'], $_POST['equipement3']); // Fonction permettant d'afficher un planning en fonction de la date		
				$d += $oneday; // On passe au jour suivant
		}



J'aimerais donc savoir s'il y' a un moyen sûr de pouvoir générer des dates du lundi au dimanche sans avoir de problème lors des changements d'heure d'été et d'hiver.

Merci d'avance.
Bonne journée.
Configuration: Windows Vista
Firefox 2.0.0.16

1

 benji07, le 17 oct 2008 à 13:22:12

Je viens d'avoir le même problème, utilise le code suivant pour changer de jour

$start_date_time = strtotime("+1 day",$start_date_time);

pour plus d'info, voir la doc de strtotime

Répondre à benji07