phptimezonetimezonedb

Why does Asia/Dubai timezone abbreviation differ between timezonedb and tzdata?


I'm using php timezonedb 2017.2.

How come it returns +04 instead of GST for Asia/Dubai timezone?
While default built in php tzdata returns GST.

$dt = new DateTime('now', new DateTimezone('Asia/Dubai'));
$dt->format('T'); // returns either GST or +04

php -v = PHP 5.5.38 (cli) (built: Oct 25 2016 18:30:32)


Solution

  • Basically, because time zone data changes over time. It sounds like timezonedb is up-to-date, but tzdataisn't.

    This change was made in the 2017a release of the IANA time zone data.

    From the announcement email - emphasis mine:

    Changes to past and future time zone abbreviations

    Switch to numeric time zone abbreviations for South America, as part of the ongoing project of removing invented abbreviations. This avoids the need to invent an abbreviation for the new Chilean new zone. Similarly, switch from invented to numeric time zone abbreviations for Afghanistan, American Samoa, the Azores, Bangladesh, Bhutan, the British Indian Ocean Territory, Brunei, Cape Verde, Chatham Is, Christmas I, Cocos (Keeling) Is, Cook Is, Dubai, East Timor, Eucla, Fiji, French Polynesia, Greenland, Indochina, Iran, Iraq, Kiribati, Lord Howe, Macquarie, Malaysia, the Maldives, Marshall Is, Mauritius, Micronesia, Mongolia, Myanmar, Nauru, Nepal, New Caledonia, Niue, Norfolk I, Palau, Papua New Guinea, the Philippines, Pitcairn, Qatar, RĂ©union, St Pierre & Miquelon, Samoa, Saudi Arabia, Seychelles, Singapore, Solomon Is, Tokelau, Tuvalu, Wake, Vanuatu, Wallis & Futuna, and Xinjiang; for 20-minute daylight saving time in Ghana before 1943; for half-hour daylight saving time in Belize before 1944 and in the Dominican Republic before 1975; and for Canary Islands before 1946, for Guinea-Bissau before 1975, for Iceland before 1969, for Indian Summer Time before 1942, for Indonesia before around 1964, for Kenya before 1960, for Liberia before 1973, for Madeira before 1967, for Namibia before 1943, for the Netherlands in 1937-9, for Pakistan before 1971, for Western Sahara before 1977, and for Zaporozhye in 1880-1924.