私は、PHP の DateTime クラスでかなり長い間苦労してきました。私の理解では、タイムゾーンに関係なく、UNIX タイムスタンプは常に UTC です。
そのため、このコード サンプルはかなり混乱しています。
$date1 = new DateTime("@1351382400"); // Sun Oct 28 2012 02:00:00 GMT+2 (DST)
var_dump($date1->getTimestamp()); //prints: 1351382400
$date1->setTimezone(new DateTimeZone("Europe/Stockholm"););
var_dump($date1->getTimestamp()); //prints: 1351386000
ご覧のとおり、setTimezone() は getTimestamp() の結果を変更します。
setTimezone() が getTimestamp() に影響すると予想されますか?