我在整个脚本中广泛使用unix时间,通常我按如下方式设置时区:
date_default_timezone_set('Europe/London');
这种情况一直很好,直到上周末时钟回到一个小时,我怀疑这与美国的时钟还没有回来,直到下周末都不会有关。
我可以通过将时区设置为UTC来解决问题,但为什么欧洲/伦敦设置无法正常工作。据我所知,我的服务器位于英国。
谢谢,
艾伦。
答案 0 :(得分:3)
Europe/London
与UTC
的时区不同。英国观察夏令时,因此在半年中,时区偏移为UTC + 1。上周末,夏令时已在欧洲结束。
但是,我怀疑你没有正确使用Unix时间。在PHP中,如果时钟设置正确,time()
始终返回当前的Unix时间戳,而不考虑时区。如果您的时间戳增加了一个小时,您可能会将当地时间解释为UTC时间。
作为旁注,如果您要指定时区,则应始终指定您打算使用的时区。如果要使用UTC,请指定UTC
。如果您想使用在英国使用的时区,请指定Europe/London
。如果由于某种原因,英国会更改其时区或夏令时规则,Europe/London
将更新这些更改。