Calocybe: Funktion localtime ist 1h zurueck

Beitrag lesen

Auch Hi!

Verwendest du auch dieselbe Zeit(zone) auf beiden Rechnern?
Yepp! Laut Win95 schon!

*Ganz* sicher? Welche Zeitzone ist denn eingestellt, "Berlin" oder "Athen"?

Mit der Funktion gmtime() zeigen beide Rechner die gleiche Uhrzeit an! Aber warum 2h hinter der MEZ?
Als Ergbenis erhalte ich 13:39:15  fuer 15:39:15 !
Das waere grundsaetzlich kein Problem, aber ist dies auch der Fall fuer Winterzeit?

Hier liegt vielleicht der Hund begraben. Wir leben momentan in der Zeitzone MESZ (Mitteleuropaeische Sommerzeit; auch CEST (central european summer time); auch CET DST (central european time, daylight saving time)). Diese ist der GMT zwei Stunden voraus, also GMT +0200. Waehrend der kalten Jahreszeit haben wir MEZ (bzw. CET). Da dies die eigentliche normale Zeit ist, heisst die nicht MEWZ (ME-Winterzeit), sondern einfach nur MEZ. Und die ist == GMT +0100. Und deswegen ist also 13:39:52 GMT momentan 15:39:52 hiesiger Zeit, waehrend des Winters dieselbe GMT aber nur 14:39:52. Dein Problem koennte also damit zusammenhaengen, dass auf einem der Rechner korrekt die Sommerzeitzone (+0200) eingestellt ist, auf dem anderen aber noch die Winterzeitzone (+0100).

Trotzdem wundert mich das Verhalten Deines kleinen Scriptes. Denn: Die Sekundenzahl, die time() zurueckgibt, bezieht sich immer auf GMT. Der Rechneruhr bzw. das OS kennt aber auf PCs nur die lokale Zeit. Also muss mithilfe der eingestellten Zeitzone auf die GMT zurueckgeschlossen werden. Wenn Deine Zeitzone jetzt faelschlicherweise nur auf GMT +0100 steht, liefert time() zwar eine um 1h falsche GMT zurueck. Beim localtime()-Aufruf, wo die (falsche) Zeitzone wieder draufaddiert wird, muesste sich dieser Effekt aber wieder aufheben, sodass localtime() *immer* die auf dem Rechner eingestellte Uhrzeit zurueckgeben sollte. Kann es sein, dass ich die Beschreibung da ein bisschen missverstanden habe?

So long