Calcul du temps
Dernière réponse : dans Programmation
Salut à tous,
J'ai un petit souci avec le calcul de temps en php. J'essaie par ex de calculer l'intervalle de temps séparant les premiers jours à 00:00:00 (hh:mm:ss) entre 2 mois successifs.
Mon idée était la suivante :
Et ça marche pour de nombreux mois, mais pas pour tous : en octobre où il manque 1 heure (on arrive à la fin du mois calculé au 31/10/2006 à 23:00) et en mars où il y a 1 heure de trop (on arrive à la fin du mois calculé au 01/04/2006 à 01:00)...
Y a-t-il une explication logique à ce phénomène ?
Merci d'avance
J'ai un petit souci avec le calcul de temps en php. J'essaie par ex de calculer l'intervalle de temps séparant les premiers jours à 00:00:00 (hh:mm:ss) entre 2 mois successifs.
Mon idée était la suivante :
//calcul du timestamp du premier jour du premier mois à 00:00:00 avec "mktime"
$timestampMoisActuel = mktime(0, 0, 0, 4, 1, 2006); // 1er avril 2006
$nbJourDansLeMois=30; // nombre de jour en avril
$timestampMoisSuivant = $timestampMoisActuel + $nbJourDansLeMois*24*60*60; // le timestamp du début du mois suivant est égal au timestamp du début du mois actuel + la durée en seconde du mois actuel
echo date('d/m/Y à H:i', $timestampMoisSuivant ); //affiche la date calculée
Et ça marche pour de nombreux mois, mais pas pour tous : en octobre où il manque 1 heure (on arrive à la fin du mois calculé au 31/10/2006 à 23:00) et en mars où il y a 1 heure de trop (on arrive à la fin du mois calculé au 01/04/2006 à 01:00)...
Y a-t-il une explication logique à ce phénomène ?
Merci d'avance
Autres pages sur : calcul temps
Lassé par la pub ? Créez un compte
http://be.php.net/manual/en/ref.datetime.php
d'apres le premier commentaire, pour des "dela date" faut utiliser gmdate et pas date
d'apres le premier commentaire, pour des "dela date" faut utiliser gmdate et pas date
En effet, le souci du décalage a disparu avec gmdate(). Le problème, c'est que le temps n'est plus à l'heure française... C'est normal, puisqu'on est GMT+1 en hiver et GMT+2 en été ! C'est simple
Bref, c'est là que j'ai compris d'où venait le décalage d'une heure en avril et en octobre ! C'est justement lié au changement de d'heure
Une solution simple pour remédier à ce décalage sur les calculs de périodes en heure française :
Ce script n'est pas parfait puisqu'il ne tient pas compte de la date réelle du changement d'heure, c'est à dire entre le samedi et le dimanche des derniers WE de mars et d'octobre... Il y a donc quelques jours à la fin de mars et à la fin d'octobre qui seront encore décalés d'une heure. Mais pour ce dont j'ai besoin, pas besoin d'aller plus loin pour le moment. Si ça vous tente de le faire, ne vous gênez pas
Bref, c'est là que j'ai compris d'où venait le décalage d'une heure en avril et en octobre ! C'est justement lié au changement de d'heure
Une solution simple pour remédier à ce décalage sur les calculs de périodes en heure française :
if($moisActuel == "3") // mars, on passe à l'heure d'été
$moisSuivant = $moisActuel + $nbJourMoisActuel*3600*24 - 3600; //début avril= début mars + nombre de secondes réelles en mars (avec une heure en moins pour le passage à l'heure d'été)
elseif($moisActuel == "10") //octobre, on passe à l'heure d'hiver
$moisSuivant = $moisActuel + $nbJourMoisActuel*3600*24 + 3600; //début octobre = début septembre + nombre de secondes réelles en septembre (avec une heure en plus pour le passage à l'heure d'été)
else
$anneeMois = $anneeMois + $nbJourMoisActuel*3600*24;
Ce script n'est pas parfait puisqu'il ne tient pas compte de la date réelle du changement d'heure, c'est à dire entre le samedi et le dimanche des derniers WE de mars et d'octobre... Il y a donc quelques jours à la fin de mars et à la fin d'octobre qui seront encore décalés d'une heure. Mais pour ce dont j'ai besoin, pas besoin d'aller plus loin pour le moment. Si ça vous tente de le faire, ne vous gênez pas
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumCalcul temps requete mysql
- ForumCalcul temps de course excel
- benchmarkCalcul temps de chargement de page
- ForumCalcul temps affichage page
- ForumFeuille calcul temps travail
- ForumCalcul de temps avec vitesse distance excel
- ForumAfficher temps calcul php
- ForumCalcul php
- ForumCalcul onduleur
- ForumCalcul en sql
- Voir plus
>>