[solved] DateTime->format() Vs. date() --- 2h Difference

Kann mir jemand erklären, warum folgende zwei Ausgaben sich um zwei Stunden unterscheiden? Eine Stunde wäre ja mit DST zu erklären, aber zwei?
Der timestamp liegt im 32bit INT Bereich, also Typinsuffiziens ist hier wohl auch nicht der Schuldige.

echo date("Y-m-d H:i:s", 1245967224)."\n";
$dt = new DateTime("@1245967224", new DateTimeZone( date_default_timezone_get() ));
echo $dt->format("Y-m-d H:i:s")."\n";

Bei einem timestamp von 1200000000 unterscheiden sie sich nur noch um eine Stunde. Bei aktuellem timestamp gar nicht …
PHP.net hat mich bisher auch noch nicht auf die richtige Fährte gebracht.

Ich hatte bisher auch noch keine Lust nachzurechnen welcher nun stimmen mag, werd ich aber mal machen wenn hier keiner fixe Antwort weiß.

Cheers

Dann solltest du in der Beschreibung des Konstruktors von DateTime noch mal aufmerksam nachlesen - da steht ein expliziter Hinweis zum timezone-Parameter bei Verwendung des von dir gewählten time-Formats.

stimmt
Wer macht denn sowas? Dann wohl umschiffen, danke.

/edit: wobei mir das noch nicht erklärt warum ich für manche Angaben +2h, andere +1h und wieder andere +0h bekomme, die Zeitzone wird sich wohl nicht mit dem timestamp ändern

„Umschiffen“ kannst du das, in dem du die Zeitzone einfach nach der Erzeugung des DateTime-Objekte über die Methode DateTime::setTimezone nachträglich setzt.