Probleme utilisation time/mktime

Fermé
Makari - 27 nov. 2008 à 16:00
 Makari - 28 nov. 2008 à 15:06
Bonjour,

Je rencontre quelques problemes avec l'utilisation de time et mktime.
lorsque je fais appel a la fonction time() il me renvoie un nombre (celui de secondes depuis 1970 a priori)
ensuite, si j'utilise la fonction mktime, les appels suivants a la fonction time() seront décalés d'une heure (3600 secondes). Il va sans dire que c'est plutot genant, mes résultats sont tous décalés (mis a part ceux effectués avant l'appel a la fonction mktime).

y'a t il un moyen de contourner ce probleme ? (j'aimerai autant que possible eviter de mettre "+3600" aux resultats faisant intervenir time() qui suivent le premier appel a mktime() ..

Merci d'avance.

Mak
A voir également:

4 réponses

en fait le probleme n'est pas tout a fait celui que j'ai expliqué, je m'explique, j'ai fais un code simple pour illustrer :


echo "<br>il est :______________________", date("Y-m-d H:i:s",time());
echo "<br> time : _____________________", time();
echo "<br> mktime de date de time_______", mktime(date("H:i:s m-d-Y",time()));
echo "<br> mktime de date de time - time__", mktime(date("H:i:s m-d-Y",time()))-time();
echo "<br>il est :______________________", date("Y-m-d H:i:s",time());
echo "<br> time : _____________________", time();

ce code affiche les resultats suivants :

l est :_____________________2008-11-27 17:56:40
time : ____________________1227805000
mktime de date de time______1227808600
mktime de date de time - time_0
il est :____________________2008-11-27 16:56:40
time : ____________________1227805000

en fait la fonction time() retourne bien le meme resultat a chaque fois, mais la fonction date(), non.
une fois la fonction mktime utilisée, la fonction date() est décalée d'une heure
de plus, time() et mktime(date("H:i:s m-d-Y",time())) ne retournent pas le meme nombre de seconde, pourtant ca devrait etre le cas, si quelqu'un peut m'expliquer ce qui se passe, ca serait bien sympa de sa part.
0
personne n'a une idée ?
0
J'ai fini par opter pour la solution "bidouillage", j'ai ajouté/retranché (selon le cas) 3600 secondes ici et la, ca a l'air de fonctionner mais bon .. pas top pour la compréhension :/

Si quelqu'un trouve une solution, je reste preneur, a+
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
28 nov. 2008 à 00:33
J'ai utilisé ton code :
echo "<br>il est :______________________", date("Y-m-d H:i:s",time());
echo "<br> time : _____________________", time();
echo "<br> mktime de date de time_______", mktime(date("H:i:s m-d-Y",time()));
echo "<br> mktime de date de time - time__", mktime(date("H:i:s m-d-Y",time()))-time();
echo "<br>il est :______________________", date("Y-m-d H:i:s",time());
echo "<br> time : _____________________", time(); 

et ça me donne ça :
il est :______________________2008-11-27 19:31:39
time : _____________________1227828699
mktime de date de time_______1227828699
mktime de date de time - time__0
il est :______________________2008-11-27 19:31:39
time : _____________________1227828699

Ce qui me parait normal...
0
bin chez moi les résultats sont erronés, peut etre est ce dû au serveur, j'etais chez free avant (et tout marchait correctement) et je suis passé chez online, et depuis j'ai cet écart d'une heure.
0