我正在使用PHP TimeZonedB 2017.2。
它如何返回 04而不是GST亚洲/迪拜时区?
虽然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(
基本上,因为时区数据随时间变化。听起来timezonedb
是最新的,但tzdata
不是。
此更改是在IANA时区数据的2017a版本中进行的。
从公告电子邮件中 - 强调矿山:
更改过去和将来的时区缩写
切换到数字时区缩写南美,AS 正在进行的删除发明缩写的项目的一部分。 这避免了为新智利人发明缩写 新区域。同样,从发明到数字时区切换 阿富汗,美国萨摩亚,亚速尔群岛的缩写, 孟加拉国,不丹,英国印度洋领土,文莱, Cape Verde,Chatham IS,圣诞节I,Cocos(Keeling(,Cook是, 迪拜,East Tomor,Eucla,Fiji,French Polynesia,Greenland,Greenland, 印度支那,伊朗,伊拉克,基里巴蒂,豪勋爵,麦格理,马来西亚, 马尔代夫,马歇尔,毛里求斯,麦克罗尼亚,蒙古, 缅甸,瑙鲁,尼泊尔,新喀里多尼亚,尼埃,诺福克一世,帕劳, 巴布亚新几内亚,菲律宾,皮特凯恩,卡塔尔,雷尼翁,圣 Pierre&Miquelon,Samoa,沙特阿拉伯,塞舌尔,新加坡, 所罗门是Tokelau,Tuvalu,Wake,Vanuatu,Wallis&Futuna,然后 新疆;在1943年之前在加纳的20分钟夏令时; 在1944年之前在伯利兹(Belize(和 1975年之前的多米尼加共和国;对于金丝雀群岛之前 1946年,1975年之前的几内亚 - 比索,为1969年之前的冰岛 1942年之前的印度夏季时间,1964年左右的印度尼西亚, 1960年之前的肯尼亚,1973年之前的利比里亚,在马德拉之前 1967年,1943年之前的纳米比亚,1937 - 9年荷兰 1971年之前的巴基斯坦,1977年之前的西撒哈拉 Zaporozhye在1880- 1924年。