Andreas Korthaus: /LINUX: Was tun gegen falsche Uhrzeit?

Beitrag lesen

Hi!

Üblich ist es unter Linux die Systemzeit und die Echtzeituhr in UTC zu führen und dann für jeden User die Umsetzung in seine Lieblingszeitzone zu machen. Dann hat man auch nicht immer so ein Herumgestelle bei Sommer/Winterzeitwechsel.

Aber greift denn PHP auf die Systemzeit zu und nicht auf die lokale? Also muss man die Systemzeit auf die Lokale stellen, wenn in PHP standardmäßig die lokale Zeit in date() und time() haben will?
Kann man in PHP nicht die Standardzeitzone verändern? Ich dachte mit setlocale() aber das geht nicht.

Und wenn date z.B. immer GMT ausgibt, dann sag mir mal jemand warum es dann so eine Funktion gibt:

http://www.php.net/manual/de/function.gmdate.php:

Entspricht der date() Funktion, außer dass als Zeitangabe immer Greenwich Mean Time (GMT) zurück gegeben wird. Steht ihr System in Deutschland (GMT + 01:00), wird im Beispiel unten (1. Zeile) "Jan 01 1998 00:00:00" ausgegeben, wogegen die 2. Zeile "Dec 31 1997 23:00:00" zurück gibt.

Beispiel 1. gmdate() Beispiel

<?php
echo date ("M d Y H:i:s", mktime (0,0,0,1,1,1998));
echo gmdate("M d Y H:i:s", mktime (0,0,0,1,1,1998));
?>

Deine Zeit geht dann wohl nicht falsch (18:00 UTC = 20:00 CEST), du hast bloß die falsche Zeitzone für die Ausgabe gewählt. Und eigentlich hätte sich das nach dem Setzen des korrekten Links für /etc/localtime erledigt haben sollen.

Hat sie, ich hab es nochmal probiert und das ging dann...

Sicher dass der Link korrekt ist und das Ziel auch existiert? Wenn ich hier meine localtime nämlich kaputt mache, fällt date sofort auf UTC zurück. Oder vielleicht schwirrt bei dir auch noch die Umgebungsvariable TZ rum?

Wo soll die rumschwirren?

Weiterführend lesen möchtest du vielleicht http://www.linuxsa.org.au/tips/time.html sowie das Clock Mini-HOWTO.

Ja, ich denke auf dem System komme ich jetzt klar, nur weiß ich nicht warum PHP und Apache sich nicht dran halten.

Hast Du ne Idee woran das liegen könnt?

Grüße
Andreas