这是示例代码:
$d = new DateTime('@1539691200');
$d->setTimezone(new DateTimeZone('UTC'));
var_dump($d);
如您所见,DateTime
是根据时间戳构造的,因此服务器的时区将被忽略。然后,将时区设置为“ UTC”,该值在所有地方都应该相同。但是无论如何,这是我机器上的输出:
object(DateTime)#1 (3) {
["date"]=>
string(26) "2018-10-16 13:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
这是here的输出:
object(DateTime)#1 (3) {
["date"]=>
string(26) "2018-10-16 12:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
那为什么会发生呢? UTC在不同服务器上如何不同?可能是timezonedb问题吗?