我试图使用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)
现在,NZ时区缩写是正确的(NZDT),所有澳大利亚时间都是正确的,但是夏时制活动的两个澳大利亚时间(如php date 'I‘格式字符所示,如果日光节约到位,返回'1’)仍然显示非DST缩写。
有什么想法吗?
发布于 2014-10-05 06:24:26
有几件事:
Australia/Darwin
(又名Australia/North
)根本不遵守夏令时。- Eastern Summer Time (EST)
- Australian Eastern Summer Time (AEST)
- Eastern Daylight Time (EDT)
- Australian Eastern Daylight Time (AEDT)
timezone_version_get()
来查看具有哪个版本的timezonedb。接受新的缩写应该是2014.6或更高。https://stackoverflow.com/questions/26198664
复制相似问题