【发布时间】:2017-11-13 21:30:31
【问题描述】:
我有两个不同的服务器和同一个 PHP 网站的副本。
两台服务器都使用相同的时区“太平洋/奥克兰”。
此代码在服务器 #1 上显示相同的两个数字:
echo time();
echo strtotime('UTC');
1510607965 & 1510607965
但相同的代码在服务器 #2 上显示了两个不同的数字:
1510607965 & 1510654765
为什么每台服务器都不一样?
【问题讨论】:
-
PHP 使用的是哪个时区?您可以在脚本中使用
date_default_timezone_get()查找。两个时间戳的差异是 46800 秒,即 13 小时,恰好是奥克兰与 UTC 的偏移量,所以看起来一个 PHP 安装设置为UTC(+0000),另一个设置为Pacific/Auckland(+1300) . -
在您提出的最后一个问题中(在您删除之前)没有人说这个吗?
-
@MartinBean date_default_timezone_get() 在两者上都显示“太平洋/奥克兰”。
-
听起来其中一台服务器上的时区数据库有问题。
-
@Barmar 他们都使用相同的 PHP 版本。我会尝试更新时区数据库。
标签: php date time utc strtotime