我一直在努力使用 PHP 的 DateTime 类。我的理解是,无论时区如何,UNIX-timstamp 始终采用 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()?