【发布时间】:2014-11-29 16:13:14
【问题描述】:
我正在尝试使用 PHP 的 date_default_timezone_set 函数来表示不同时区的 UTC 时间戳。夏令时刚刚开始在这里(新西兰)和澳大利亚,我得到的结果好坏参半......
这是一些测试代码...
date_default_timezone_set('NZ');
print '<p>NZ time is ' . date('Y-m-d H:i:s T (I)') . '</p>';
date_default_timezone_set('Australia/NSW');
print '<p>NSW time is ' . date('Y-m-d H:i:s T (I)') . '</p>';
date_default_timezone_set('Australia/North');
print '<p>NT time is ' . date('Y-m-d H:i:s T (I)') . '</p>';
date_default_timezone_set('Australia/South');
print '<p>SA time is ' . date('Y-m-d H:i:s T (I)') . '</p>';
我从中得到这个输出...
NZ time is 2014-10-05 14:04:27 NZDT (1)
NSW time is 2014-10-05 12:04:27 EST (1)
NT time is 2014-10-05 10:34:27 CST (0)
SA time is 2014-10-05 11:34:27 CST (1)
现在,新西兰时区缩写是正确的 (NZDT),所有澳大利亚 时间 都是正确的,但是夏令时有效的两个澳大利亚时间(如 php 日期“I”所示)格式字符,如果有夏令时则返回“1”)仍然显示非 DST 缩写。
有什么想法吗?
【问题讨论】:
-
List of supported Australia timezones 用于
date_default_timezone_set函数 -
谢谢 2pha - 我正在使用相关澳大利亚州支持的时区,但时区缩写的所有内容都会正确返回。
-
啊,我,对不起,我刚醒来。你确定缩写是不同的吗?我认为他们是正确的。我不认为缩写会因为 1 使用夏令时而 1 不使用而有所不同。
-
新西兰时区缩写的表现符合我的预期。在 DST 开始之前,它显示为 NZST。现在它(正确地)显示为 NZDT。我假设澳大利亚时区缩写的行为相同(EST -> EDT),但事实并非如此。困惑。
标签: php date datetime timezone dst