Alexander (HH): Zeitzonen in PHP5 - Auswahl wie zusammenstellen?

Beitrag lesen

Moin Moin!

Was wäre denn, wenn ich "UTC" als Wert nähme? Was würde dann bei Abfragen à la date('Y-m-d H:i:s') passieren?

Was PHP treibt, will ich meistens gar nicht wissen, das macht nur Kopfschmerzen.

Wenn date() als Default die aktuelle Zeit nimmt, und Zeitzonen-Angaben berücksichtigt, müßte das Ergebnis eine Zeitangabe in UTC sein, d.h. eine oder zwei Stunden Unterschied zur in Deutschland üblichen Zeitangabe.

Das PHP-Manual schwafelt bei fehlendem Timestamp aber etwas von lokaler Zeit, was definitiv etwas anderes ist als eine Zeitangabe in UTC. In der englischen Fassung steht dort schlicht current time. Beide Fassungen verweisen auf den Rückgabewert von time(). time() soll in der deutschen und der englischen Fassung die Sekunden seit 1970-01-01 00:00:00 GMT liefern. Beide Fassungen beziehen sich explizit auf die "Unix Epoch". Schade nur, dass Unix-Zeiten als Anzahl der Nicht-Schaltsekunden seit 1970-01-01 00:00:00 UTC definiert sind, und gängige Betriebssysteme eben diese Definiton verwenden. Aktuell weichen diese beiden Definitionen um 25 Sekunden voneinander ab.

Das Schöne an der Konstruktion aus dem alten Thread ist aber gerade, dass Du dich mit Datumsfunktionen nur auf dem Client herumschlagen mußt, und das dort die Zeitzonenprobleme bereits durch die Installation von Betriebssystem und Browser erledigt sind. In PHP siehst Du nur einen großen Integer. date() würdest Du nur als Fallback für Clients ohne aktiviertes Javascript nutzen, sinnigerweise mit "c", "r", "Y-m-d H:i:s I",  "Y-m-d H:i:s T",oder "Y-m-d H:i:s e" als Format.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".