Time()根据服务器返回不同的时间戳



我现在搜索了很多小时,似乎没人遇到这个问题。

我运行了一个脚本,该脚本将当前的时间戳写入两个服务器上。两者都有相同的操作系统,软件和相同的时区。

现在我发现,某些时间戳和当前时间()之间的差异是负数(是的,计算是正确的: time() - $older_timestamp

我在两个服务器上都倾倒了Time(),结果:它完全不同了一个小时。检查一下:

  • time()在服务器#1:-1小时
  • time()在服务器上#2:正确的时间戳

由于时间()应该始终基于UTC,所以我无法解释,这是如何发生的。

有人有任何想法吗?

来自Aachen的问候

显然是服务器一,服务器两个设置为不同的时间。检查 BIOS 和您的服务器的OS 时间。

要添加到快乐的节日中,我给你另一个选择。

OS的时区可能设置不正确。如果两个时钟都在同一时间显示,但一台服务器认为它在伦敦而另一台服务器认为它是在Aachen中,那么从系统调用返回的UTC时间将有所不同。

但是,如果您要安装NTPD,这一切都不会发生。(通常)

这很可能是由于Apache在php.ini中错误设置的时区引起的。检查php.ini文件中的date.timezone =文件,然后将其更改为时区。可以在此处找到PHP时区的列表:http://php.net/manual/en/timezones.php

例如:

date.timezone = 'America/Chicago'

如果您不能直接编辑php.ini文件,也可以使用ini_set

ini_set('date.timezone', 'America/Chicago');

最新更新