godlie
Goto Top

Mktime Probleme

Hallo,

bin gerade einem sehr interessantem Problem auf der Spur.
Ich verwende in einem php Script welches per cron abläuft
mktime zur Generierung eines Timestamps.

Das interessante ist das manchmal der Generierte Timestamp um eine Stunde abweicht.

mktime(4,0,0,"heutiges Datum in m.d.y");  

Beim Datum hab ich die führenden Nullen rausgenommen da ich die anderorts brauche ....

Gelegentlich kommt beim Timestamp dann 3 Uhr heraus und nicht 4 Uhr also sehr komisch.

Apache/2.2.9 (Unix)
PHP/5.2.8

Jemand ne idee was da dahinter steckt? face-smile

Content-ID: 138163

Url: https://administrator.de/contentid/138163

Ausgedruckt am: 23.11.2024 um 09:11 Uhr

kaiszy28
kaiszy28 13.03.2010 um 18:13:48 Uhr
Goto Top
Hi!

mktime wird in folgender Weise benutzt:

int mktime  ([  int $hour = date("H")  [,  int $minute = date("i")  [,  int $second = date("s")  [,  int $month = date("n")  [,  int $day = date("j")  [,  int $year = date("Y")  [,  int $is_dst = -1  ]]]]]]] )  

Dein Aufruf sieht ziemlich falsch aus ;)

CU,
Kai.
godlie
godlie 13.03.2010 um 18:18:58 Uhr
Goto Top
Hallo,

der Aufruf is ja nicht wirklich so wie er da oben steht.

$dateSplit = explode(".","12.3.2010");  
mktime(4,0,.0,$dateSplit[1],$dateSplit,$dateSplit[2]);
dog
dog 13.03.2010 um 19:24:30 Uhr
Goto Top
Das interessante ist das manchmal der Generierte Timestamp um eine Stunde abweicht.

Und jetzt überlegen wir mal wo wir hier sind: Richtig, in GMT+1

Du musst deinem PHP schon richtig mitteilen, in welcher Zeitzone zu dein Datum haben willst und aus welcher es kommt.
date_default_timezone_set('Europe/Berlin');  

http://www.php.net/manual/en/datetime.createfromformat.php

usw.
godlie
godlie 13.03.2010 um 20:29:48 Uhr
Goto Top
Naja das nag schon so seine Richtigkeit haben nur warum tritt der Fehler nur sporadisch auf?
dog
dog 13.03.2010 um 20:43:58 Uhr
Goto Top
Weil du dich nicht darauf verlassen kannst, dass dein Environment immer gleich ist.
godlie
godlie 24.03.2010 um 06:54:53 Uhr
Goto Top
Hallo,
nach einer Woche Beobachtung auch mit date_default_timezone_set trat der Fehler Heute auf,
das scheint wirklich ein Bug zu sein.
Denn der Generierte Timestamp lag um eine Stunde daneben.