我现在搜索了好几个小时,似乎以前没有人遇到过这个问题。
我在两台服务器上运行一个脚本,将当前时间戳写入数据库。两者都有相同的操作系统、软件……和相同的时区。
现在我发现,一些时间戳和当前 time() 之间的差异是一个负数(是的,计算是正确的time() - $older_timestamp
:)
我在两台服务器上都转储了 time(),结果:相差正好一小时。一探究竟:
由于 time() 应该始终基于 UTC,我无法解释这是如何发生的。
有人有什么想法吗?
来自亚琛的问候
我现在搜索了好几个小时,似乎以前没有人遇到过这个问题。
我在两台服务器上运行一个脚本,将当前时间戳写入数据库。两者都有相同的操作系统、软件……和相同的时区。
现在我发现,一些时间戳和当前 time() 之间的差异是一个负数(是的,计算是正确的time() - $older_timestamp
:)
我在两台服务器上都转储了 time(),结果:相差正好一小时。一探究竟:
由于 time() 应该始终基于 UTC,我无法解释这是如何发生的。
有人有什么想法吗?
来自亚琛的问候
显然服务器一和服务器二设置为不同的时间。检查BIOS和服务器的操作系统时间。
为了增加欢乐,我给你另一个选择。
操作系统的时区可能设置不正确。如果两个时钟显示相同的时间,但一个服务器认为它在伦敦,而另一个认为它在亚琛,则从系统调用返回的 UTC 时间将相差一小时。
但是,如果您要安装,则说NTPD
这一切都不会发生。(通常)
php.ini
这可能是由于Apache中的时区设置不正确造成的。检查php.ini
文件date.timezone =
并将其更改为您的时区。可以在此处找到 PHP 时区列表:http: //php.net/manual/en/timezones.php
例如:
date.timezone = 'America/Chicago'
ini_set
如果您不能php.ini
直接编辑文件,您也可以使用。
ini_set('date.timezone', 'America/Chicago');