8

我将我的服务器同步到 UTC,目前是2013-05-23 18:13:56给予或接受。

当我跑步时date("Y-m-d H:i:s"),我得到了2013-05-24 07:13:56

我检查了 php.ini 文件,设置了时区date.timezone = 'UTC',我认为这会更改时区以反映系统的时区设置。所以我把它关掉了(像这样:);date.timezone = 'UTC',我仍然得到一个不正确的时间戳。

所有这些摇摇晃晃的时间都让我更加困惑,而不是带有情人节卡片的 Dalek。

建议?

4

3 回答 3

4

UTC 是参考,而不是时区。

每个国家/地区都参考 UTC。

您应该使用您需要使用时间的国家的时区。

例如:

date_default_timezone_set('Europe/London');
date("Y-m-d H:i:s");

注意:欧洲/伦敦是 UTC+1(奇怪的欧盟?UTC 应该是通过伦敦的格林威治但英国使用时间节省,所以区别)

服务器时间也应该是正确的,将其设置为“UTC”并不意味着一件好事,如果更重要的是您的服务器处于“正确时区”的“正确时间”

如何知道哪个时区是服务器:从控制台输入:

$ date

服务器响应时间:

Thu May 23 13:22:23 CDT 2013

请注意 CDT,它是时区。哪个时区使用您的服务器?

于 2013-05-23T18:35:31.817 回答
1

我发现我的 TARDIS 会将自己设置为本地时间,所以无论它找到自己,这就是我的 SQL 将自己设置的地方。因此,我总是确保我的 Ubuntu 使用正确的时区。这是系统时间,而不仅仅是 SQL 时间。这样不那么摇摆不定。

于 2013-05-23T18:27:32.590 回答
-1

我猜你正在使用 PHP < 5.4

日期.时区字符串

所有日期/时间函数使用的默认时区。在 PHP 5.4.0 之前,这仅在未设置 TZ 环境变量时才有效。如果没有明确提及,则使用时区的优先顺序在date_default_timezone_get() 页面中进行了描述。有关支持的时区列表,请参阅支持的时区列表。

于 2013-05-23T18:22:39.040 回答