我正在使用 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
不是。
此更改是在 2017 年发布的 IANA 时区数据中进行的。
来自公告电子邮件 - 我的重点:
过去和未来时区缩写的更改
切换到南美洲的数字时区缩写,如 正在进行的删除发明缩写项目的一部分。 这避免了为新智利语发明缩写的需要 新区。 同样,从发明时区切换到数字时区 阿富汗、美属萨摩亚、亚速尔群岛的缩写, 孟加拉国、不丹、英属印度洋领地、文莱、 佛得角、查塔姆群岛、圣诞节 I、科科斯(基林)群岛、库克群岛、 迪拜、东帝汶、尤克拉、斐济、法属波利尼西亚、格陵兰、 印度支那、伊朗、伊拉克、基里巴斯、豪勋爵岛、麦格理、马来西亚、 马尔代夫、马绍尔群岛、毛里求斯、密克罗尼西亚、蒙古、 缅甸、瑙鲁、尼泊尔、新喀里多尼亚、纽埃、诺福克岛、帕劳、 巴布亚新几内亚、菲律宾、皮特凯恩、卡塔尔、留尼汪、圣 皮埃尔和密克隆群岛、萨摩亚、沙特阿拉伯、塞舌尔、新加坡、 所罗门群岛、托克劳群岛、图瓦卢、威克岛、瓦努阿图、瓦利斯和富图纳群岛以及 新疆; 1943年之前加纳实行20分钟夏令时; 1944 年之前伯利兹实行半小时夏令时 1975 年之前的多米尼加共和国;之前的加那利群岛 1946年,几内亚比绍,1975年之前,冰岛,1969年之前, 1942 年之前的印度夏令时间,1964 年左右之前的印度尼西亚, 1960 年之前的肯尼亚、1973 年之前的利比里亚、1973 年之前的马德拉 1967年,1943年之前的纳米比亚,1937-9年的荷兰, 1971 年之前的巴基斯坦、1977 年之前的西撒哈拉、1977 年之前的西撒哈拉 1880-1924 年的扎波罗热。