Probleme de date/mktime

Makdoom Messages postés 9 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 11 mai 2010 - 4 avril 2009 à 21:20
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 6 avril 2009 à 20:43
Bonjour,

je développe un jeu et j'ai un petit problème (actuellement résolu par bidouillage) que j'aimerai bien régler.

pour faire simple, voici un exemple de code :

<?php
echo "
", date("Y-m-d H:i:s",time());
echo "
",gmmktime(21,51,0,3,30,2009);
echo "
", date("Y-m-d H:i:s",time());
?>

la premiere ligne me donne la date et l'heure actuelle
la seconde ligne me donne un nombre de secondes
la troisieme ligne me donne la date et l'heure mais avec 2 heures d'ecart par rapport a la premiere ligne.

autrement
dit il semblerait que la fonction mktime() (ou gmmktime(), j'ai essayé
avec les deux) modifie les parametres de la fonction date().
Il va de soit que ce n'est pas gérable pour peu qu'on ait besoin de précision.

Ma
question est donc, comment faire pour avoir une fonction date()
invariable lorsqu'on a besoin également de la fontction mktime ?
y'a t il d'autres fonctions equivalentes qui existent qui n'entrent pas en conflit entre elles ?

pour
le moment j'ai du mettre du +3600 a toute les sauces dans mon code, et
depuis le changement d'heure j'ai du remplacé par +7200, bref, ca ne
ressemble plus a rien et je commence a me perdre dans ces bidouillages

Si quelqu'un a une idée, voir une solution, ce serait bien sympa

2 réponses

Makdoom Messages postés 9 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 11 mai 2010
4 avril 2009 à 21:22
ah j'oubliai, ce problème n'est pas présent en local, mais sur le serveur ou est hébergé le site, oui.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 avril 2009 à 20:43
Hello,

que je sache, gmmktime() n'est absolument pas censée modifier les paramètres "locales" de ton serveur...ton problème est donc TRES étrange.
Je testerai à l'occasion sur les différents serveurs de mon taf.
Par contre, pourquoi utilises-tu gmmktime qui renvoie un timestamp basé sur l'heure GMT, et pas mktime, alors que pour date() tu utilises l'heure locale, et pas l'heure GMT?
Depuis php5.2 il faut passer par date_timezone_set() pour toute utilisation des fonctions de date; sinon, tu peux passer par set_locales(), ça peut peut-être corriger ton -étrange- problème.
0
Rejoignez-nous