3

我现在搜索了好几个小时,似乎以前没有人遇到过这个问题。

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

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

我在两台服务器上都转储了 time(),结果:相差正好一小时。一探究竟:

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

有人有什么想法吗?

来自亚琛的问候

4

3 回答 3

6

显然服务器一和服务器二设置为不同的时间。检查BIOS服务器的操作系统时间。

于 2012-12-20T18:54:03.720 回答
1

为了增加欢乐,我给你另一个选择。

操作系统的时区可能设置不正确。如果两个时钟显示相同的时间,但一个服务器认为它在伦敦,而另一个认为它在亚琛,则从系统调用返回的 UTC 时间将相差一小时。

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

于 2012-12-20T19:09:50.040 回答
0

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');
于 2012-12-20T18:58:37.060 回答