Hallo Leute,
habe heute was merkwürdiges gefunden: Wenn man ein neues DateTime Objekt von einem Timestamp anlegt, welcher selber von einem DateTime Objekt kommt, dann zeigt es mir die falsche Uhrzeit an. Hab das schon mit verschiedenen PHP Versionen getestet. Kommt in etwa immer das selbe dabei heraus.
Gegeben sei folgendes einfaches Code-Beispiel, welches das Problem gut beschreibt / zeigt:
Wie ich das umgehen kann, weiß ich. Würde mich aber trotzdem mal interessieren, warum mit einem Timestamp plötzlich so eine Differenz aufkommen kann. Liegt das vielleicht an Schaltjahren oder der Zeitzoen? In meinen Fall ist immer dieselbe Zeitzone. Das kann man also erstmal als Ursache ausschließen, oder?!
In der Doku zu DateTime::getTimestamp() steht, dass es der UNIX Timestamp ist, also die Zeit in Sekunden seit irgendwann um 1970, also seitdem Jahr 0 in der Linux Zeitrechnung.
Umgehen kann ich das mit einer formatierten Ausgabe des ISO Zeitstrings.
Über Aufklärung diesbezüglich würde ich mich freuen
Falls es im falschen Board ist, dann bitte dementsprechend verschieben. Als Anfänger Frage hätte ich das nicht unbedingt eingeordnet...
MFG
derwunner
habe heute was merkwürdiges gefunden: Wenn man ein neues DateTime Objekt von einem Timestamp anlegt, welcher selber von einem DateTime Objekt kommt, dann zeigt es mir die falsche Uhrzeit an. Hab das schon mit verschiedenen PHP Versionen getestet. Kommt in etwa immer das selbe dabei heraus.
Gegeben sei folgendes einfaches Code-Beispiel, welches das Problem gut beschreibt / zeigt:
PHP-Code:
$dt = new \DateTime();
$dt2 = \DateTime::createFromFormat('U', $dt->getTimestamp());
echo '<p>dt2=' . $dt2->format('d.m.Y H:i:s') . '</p>' . \PHP_EOL;
In der Doku zu DateTime::getTimestamp() steht, dass es der UNIX Timestamp ist, also die Zeit in Sekunden seit irgendwann um 1970, also seitdem Jahr 0 in der Linux Zeitrechnung.
Umgehen kann ich das mit einer formatierten Ausgabe des ISO Zeitstrings.
Über Aufklärung diesbezüglich würde ich mich freuen
Falls es im falschen Board ist, dann bitte dementsprechend verschieben. Als Anfänger Frage hätte ich das nicht unbedingt eingeordnet...
MFG
derwunner
Kommentar