2

我在整个脚本中广泛使用 unix 时间,通常我将时区设置如下:

date_default_timezone_set('Europe/London');

这一直运行良好,直到上周末时钟回退了一个小时,我怀疑这与美国的时钟还没有回退并且要到下个周末才会回退的事实有关。

我可以通过将时区设置为 UTC 来解决此问题,但为什么欧洲/伦敦设置无法正常工作。据我所知,我的服务器位于英国。

谢谢,

艾伦。

4

1 回答 1

3

Europe/London与时区不同UTC。英国遵守夏令时,因此在半年中,时区偏移量为 UTC+1。上周末,欧洲夏令时结束。

但是,我怀疑您没有正确使用 Unix 时间。在 PHPtime()中,如果您的时钟设置正确,则无论时区如何,始终返回当前的 Unix 时间戳。如果您的时间戳跳了一个小时,您可能将本地时间解释为 UTC 时间。

附带说明一下,如果您要指定时区,则应始终指定您打算使用的时区。如果要使用 UTC,请指定UTC. 如果您想使用在英国使用的时区,请指定Europe/London. 如果由于某种原因英国曾经更改其时区或 DST 规则,Europe/London将随着这些更改进行更新。

于 2013-10-31T12:56:37.067 回答