我的托管公司在我的php.ini中将默认时区设置为America / Chicago。我通过检查phpinfo()
并在我的PHP代码中回显date_default_timezone_get()
来确认时区。
但是,我测试了在PHP代码中更改时区,但是没有运气。
首先,我测试了:
echo (new DateTime())->getTimestamp();
echo '<br>';
date_default_timezone_set('UTC');
echo (new DateTime())->getTimestamp();
并且两个回显的时间戳相同。
然后,我测试了:
echo (new DateTime())->getTimestamp();
echo '<br>';
$now = new DateTime();
$now->setTimezone(new DateTimeZone('UTC'));
echo $now->getTimestamp();
并且两个回显的时间戳仍然相同。
getTimestamp
返回UNIX Epoch timestamp。 UNIX时间戳在世界各地始终相同。时区只会影响人类可读的时间,例如当您执行$now->format('H:i:s')
时。
也请参阅https://stackoverflow.com/a/4812178/476了解更多说明。
尝试此
使用date_default_timezone_set("UTC")
<?php
date_default_timezone_set("UTC");
echo date_default_timezone_get().date('Y-m-d h:I:s');
?>
如果无法设置时区,请检查此方式。
date_default_timezone_set("UTC");
echo date_default_timezone_get();
echo date(“Y-m-d h:I:s”);
希望这会有所帮助