我使用的是php timezonedb 2017.2。
为什么亚洲/迪拜时区如何返回+04而不是消费税? 虽然php tzdata内置的默认值返回GST。
$dt = new DateTime('now', new DateTimezone('Asia/Dubai'));
$dt->format('T'); // returns either GST or +04
php -v = PHP 5.5.38(cli)(建于2016年10月25日18:30:32)
答案 0 :(得分:5)
基本上,因为时区数据会随时间而变化。听起来timezonedb
是最新的,但tzdata
不是。
此更改是在IANA time zone data的2017a版本中进行的。
来自公告电子邮件 - 强调我的:
对过去和将来时区缩写的更改
切换到南美的数字时区缩写,如 正在进行的删除发明缩写的项目的一部分。 这避免了为新智利人创造缩写的必要性 新区。同样,从发明时间切换到数字时区 阿富汗,美属萨摩亚,亚速尔群岛的缩写, 孟加拉国,不丹,英属印度洋领土,文莱, 佛得角,查塔姆是,圣诞节我,科科斯(基林)是,库克是, 迪拜,东帝汶,尤克拉,斐济,法属波利尼西亚,格陵兰, 印度支那,伊朗,伊拉克,基里巴斯,豪勋爵,麦格理,马来西亚, 马尔代夫,马歇尔是,毛里求斯,密克罗尼西亚,蒙古, 缅甸,瑙鲁,尼泊尔,新喀里多尼亚,纽埃,诺福克一世,帕劳, 巴布亚新几内亚,菲律宾,皮特凯恩,卡塔尔,留尼旺,圣 皮埃尔&密克隆,萨摩亚,沙特阿拉伯,塞舌尔,新加坡, Solomon Is,Tokelau,Tuvalu,Wake,Vanuatu,Wallis&富图纳,和 新疆;在1943年之前在加纳进行20分钟的夏令时; 伯利兹在1944年之前和之后的半小时夏令时 1975年以前的多米尼加共和国;以及之前的加那利群岛 1946年,1975年之前为几内亚比绍,1969年之前为冰岛,为 1942年之前的印度夏令时,1964年前的印度尼西亚, 1960年之前为肯尼亚,1973年之前为利比里亚,之前为马德拉岛 1967年,1943年前为纳米比亚,1937年9月为荷兰 1971年之前的巴基斯坦,1977年以前的西撒哈拉,并为 1880年至1924年扎波罗热。