We recently came across the challenge of specifying daylight saving affected time zones on a PHP based web back-end to be consumed by a mobile app on iOS and Android. We initially thought of dealing with this using the time difference in hour from either UTC or GMT, however that would not keep in account the daylight saving times changes in the affected zone. In some seasons of the year, for example, CET is GMT+1, in others it’s GMT+2.
One way around this is to use a 3 letters code for time zones, however those are hard to remember and deal with when entering the data, so we decided to use the Time Zone description instead (i.e. Europe/Rome or America/Los_Angeles).
In order to be sure we could get a common set of timezones across PHP, iOS and Android, we dumped all supported time zones on each framework and intersected the resulting arrays. Here is the result of safe time zone descriptions you can use in iOS 11, Android 5 and above and PHP 5.4 and later.
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Juba
Africa/Kampala
Africa/Khartoum
Africa/Kigali
Africa/Kinshasa
Africa/Lagos
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maputo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Monrovia
Africa/Nairobi
Africa/Ndjamena
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
Africa/Sao_Tome
Africa/Tripoli
Africa/Tunis
Africa/Windhoek
America/Adak
America/Anchorage
America/Anguilla
America/Antigua
America/Araguaina
America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/Cordoba
America/Argentina/Jujuy
America/Argentina/La_Rioja
America/Argentina/Mendoza
America/Argentina/Rio_Gallegos
America/Argentina/Salta
America/Argentina/San_Juan
America/Argentina/San_Luis
America/Argentina/Tucuman
America/Argentina/Ushuaia
America/Aruba
America/Asuncion
America/Atikokan
America/Bahia
America/Bahia_Banderas
America/Barbados
America/Belem
America/Belize
America/Blanc-Sablon
America/Boa_Vista
America/Bogota
America/Boise
America/Cambridge_Bay
America/Campo_Grande
America/Cancun
America/Caracas
America/Cayenne
America/Cayman
America/Chicago
America/Chihuahua
America/Costa_Rica
America/Creston
America/Cuiaba
America/Curacao
America/Danmarkshavn
America/Dawson
America/Dawson_Creek
America/Denver
America/Detroit
America/Dominica
America/Edmonton
America/Eirunepe
America/El_Salvador
America/Fortaleza
America/Glace_Bay
America/Godthab
America/Goose_Bay
America/Grand_Turk
America/Grenada
America/Guadeloupe
America/Guatemala
America/Guayaquil
America/Guyana
America/Halifax
America/Havana
America/Hermosillo
America/Indiana/Indianapolis
America/Indiana/Knox
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Tell_City
America/Indiana/Vevay
America/Indiana/Vincennes
America/Indiana/Winamac
America/Inuvik
America/Iqaluit
America/Jamaica
America/Juneau
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Kralendijk
America/La_Paz
America/Lima
America/Los_Angeles
America/Lower_Princes
America/Maceio
America/Managua
America/Manaus
America/Marigot
America/Martinique
America/Matamoros
America/Mazatlan
America/Menominee
America/Merida
America/Metlakatla
America/Mexico_City
America/Miquelon
America/Moncton
America/Monterrey
America/Montevideo
America/Montserrat
America/Nassau
America/New_York
America/Nipigon
America/Nome
America/Noronha
America/North_Dakota/Beulah
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/Ojinaga
America/Panama
America/Pangnirtung
America/Paramaribo
America/Phoenix
America/Port-au-Prince
America/Port_of_Spain
America/Porto_Velho
America/Puerto_Rico
America/Rainy_River
America/Rankin_Inlet
America/Recife
America/Regina
America/Resolute
America/Rio_Branco
America/Santarem
America/Santiago
America/Santo_Domingo
America/Sao_Paulo
America/Scoresbysund
America/Sitka
America/St_Barthelemy
America/St_Johns
America/St_Kitts
America/St_Lucia
America/St_Thomas
America/St_Vincent
America/Swift_Current
America/Tegucigalpa
America/Thule
America/Thunder_Bay
America/Tijuana
America/Toronto
America/Tortola
America/Vancouver
America/Whitehorse
America/Winnipeg
America/Yakutat
America/Yellowknife
Antarctica/Casey
Antarctica/Davis
Antarctica/DumontDUrville
Antarctica/Macquarie
Antarctica/Mawson
Antarctica/McMurdo
Antarctica/Palmer
Antarctica/Rothera
Antarctica/Syowa
Antarctica/Troll
Antarctica/Vostok
Arctic/Longyearbyen
Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau
Asia/Aqtobe
Asia/Ashgabat
Asia/Baghdad
Asia/Bahrain
Asia/Baku
Asia/Bangkok
Asia/Beirut
Asia/Bishkek
Asia/Brunei
Asia/Chita
Asia/Choibalsan
Asia/Colombo
Asia/Damascus
Asia/Dhaka
Asia/Dili
Asia/Dubai
Asia/Dushanbe
Asia/Gaza
Asia/Hebron
Asia/Ho_Chi_Minh
Asia/Hong_Kong
Asia/Hovd
Asia/Irkutsk
Asia/Jakarta
Asia/Jayapura
Asia/Jerusalem
Asia/Kabul
Asia/Kamchatka
Asia/Karachi
Asia/Kathmandu
Asia/Khandyga
Asia/Krasnoyarsk
Asia/Kuala_Lumpur
Asia/Kuching
Asia/Kuwait
Asia/Macau
Asia/Magadan
Asia/Makassar
Asia/Manila
Asia/Muscat
Asia/Nicosia
Asia/Novokuznetsk
Asia/Novosibirsk
Asia/Omsk
Asia/Oral
Asia/Phnom_Penh
Asia/Pontianak
Asia/Pyongyang
Asia/Qatar
Asia/Qyzylorda
Asia/Riyadh
Asia/Sakhalin
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Thimphu
Asia/Tokyo
Asia/Ulaanbaatar
Asia/Urumqi
Asia/Ust-Nera
Asia/Vientiane
Asia/Vladivostok
Asia/Yakutsk
Asia/Yekaterinburg
Asia/Yerevan
Atlantic/Azores
Atlantic/Bermuda
Atlantic/Canary
Atlantic/Cape_Verde
Atlantic/Faroe
Atlantic/Madeira
Atlantic/Reykjavik
Atlantic/South_Georgia
Atlantic/St_Helena
Atlantic/Stanley
Australia/Adelaide
Australia/Brisbane
Australia/Broken_Hill
Australia/Currie
Australia/Darwin
Australia/Eucla
Australia/Hobart
Australia/Lindeman
Australia/Lord_Howe
Australia/Melbourne
Australia/Perth
Australia/Sydney
Europe/Amsterdam
Europe/Andorra
Europe/Athens
Europe/Belgrade
Europe/Berlin
Europe/Bratislava
Europe/Brussels
Europe/Bucharest
Europe/Budapest
Europe/Busingen
Europe/Chisinau
Europe/Copenhagen
Europe/Dublin
Europe/Gibraltar
Europe/Guernsey
Europe/Helsinki
Europe/Isle_of_Man
Europe/Istanbul
Europe/Jersey
Europe/Kaliningrad
Europe/Kiev
Europe/Lisbon
Europe/Ljubljana
Europe/London
Europe/Luxembourg
Europe/Madrid
Europe/Malta
Europe/Mariehamn
Europe/Minsk
Europe/Monaco
Europe/Moscow
Europe/Oslo
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Riga
Europe/Rome
Europe/Samara
Europe/San_Marino
Europe/Sarajevo
Europe/Simferopol
Europe/Skopje
Europe/Sofia
Europe/Stockholm
Europe/Tallinn
Europe/Tirane
Europe/Uzhgorod
Europe/Vaduz
Europe/Vatican
Europe/Vienna
Europe/Vilnius
Europe/Volgograd
Europe/Warsaw
Europe/Zagreb
Europe/Zaporozhye
Europe/Zurich
Indian/Antananarivo
Indian/Chagos
Indian/Christmas
Indian/Cocos
Indian/Comoro
Indian/Kerguelen
Indian/Mahe
Indian/Maldives
Indian/Mauritius
Indian/Mayotte
Indian/Reunion
Pacific/Apia
Pacific/Auckland
Pacific/Bougainville
Pacific/Chatham
Pacific/Chuuk
Pacific/Easter
Pacific/Efate
Pacific/Enderbury
Pacific/Fakaofo
Pacific/Fiji
Pacific/Funafuti
Pacific/Galapagos
Pacific/Gambier
Pacific/Guadalcanal
Pacific/Guam
Pacific/Honolulu
Pacific/Johnston
Pacific/Kiritimati
Pacific/Kosrae
Pacific/Kwajalein
Pacific/Majuro
Pacific/Marquesas
Pacific/Midway
Pacific/Nauru
Pacific/Niue
Pacific/Norfolk
Pacific/Noumea
Pacific/Pago_Pago
Pacific/Palau
Pacific/Pitcairn
Pacific/Pohnpei
Pacific/Port_Moresby
Pacific/Rarotonga
Pacific/Saipan
Pacific/Tahiti
Pacific/Tarawa
Pacific/Tongatapu
Pacific/Wake
Pacific/Wallis
The following lists compare the missing records in each framework.
PHP
America/Fort_Nelson missing in Android
Asia/Atyrau missing in Android
Asia/Barnaul missing in Android
Asia/Famagusta missing in Android
Asia/Kolkata missing in Swift
Asia/Tomsk missing in Android
Asia/Yangon missing in Android
Europe/Astrakhan missing in Android
Europe/Kirov missing in Android
Europe/Saratov missing in Android
Europe/Ulyanovsk missing in Android
UTC missing in Swift
Swift
America/Fort_Nelson missing in Android
America/Montreal missing in PHP
America/Punta_Arenas missing in PHP
America/Punta_Arenas missing in Android
America/Santa_Isabel missing in PHP
America/Shiprock missing in PHP
Antarctica/South_Pole missing in PHP
Asia/Atyrau missing in Android
Asia/Barnaul missing in Android
Asia/Calcutta missing in PHP
Asia/Chongqing missing in PHP
Asia/Famagusta missing in Android
Asia/Harbin missing in PHP
Asia/Kashgar missing in PHP
Asia/Katmandu missing in PHP
Asia/Rangoon missing in PHP
Asia/Tomsk missing in Android
Asia/Yangon missing in Android
Europe/Astrakhan missing in Android
Europe/Kirov missing in Android
Europe/Saratov missing in Android
Europe/Ulyanovsk missing in Android
GMT missing in PHP
Pacific/Ponape missing in PHP
Pacific/Truk missing in PHP
Android
Africa/Asmera missing in PHP
Africa/Asmera missing in Swift
Africa/Timbuktu missing in PHP
Africa/Timbuktu missing in Swift
America/Argentina/ComodRivadavia missing in PHP
America/Argentina/ComodRivadavia missing in Swift
America/Atka missing in PHP
America/Atka missing in Swift
America/Buenos_Aires missing in PHP
America/Buenos_Aires missing in Swift
America/Catamarca missing in PHP
America/Catamarca missing in Swift
America/Coral_Harbour missing in PHP
America/Coral_Harbour missing in Swift
America/Cordoba missing in PHP
America/Cordoba missing in Swift
America/Ensenada missing in PHP
America/Ensenada missing in Swift
America/Fort_Wayne missing in PHP
America/Fort_Wayne missing in Swift
America/Indianapolis missing in PHP
America/Indianapolis missing in Swift
America/Jujuy missing in PHP
America/Jujuy missing in Swift
America/Knox_IN missing in PHP
America/Knox_IN missing in Swift
America/Louisville missing in PHP
America/Louisville missing in Swift
America/Mendoza missing in PHP
America/Mendoza missing in Swift
America/Montreal missing in PHP
America/Porto_Acre missing in PHP
America/Porto_Acre missing in Swift
America/Rosario missing in PHP
America/Rosario missing in Swift
America/Santa_Isabel missing in PHP
America/Shiprock missing in PHP
America/Virgin missing in PHP
America/Virgin missing in Swift
Antarctica/South_Pole missing in PHP
Asia/Ashkhabad missing in PHP
Asia/Ashkhabad missing in Swift
Asia/Calcutta missing in PHP
Asia/Chongqing missing in PHP
Asia/Chungking missing in PHP
Asia/Chungking missing in Swift
Asia/Dacca missing in PHP
Asia/Dacca missing in Swift
Asia/Hanoi missing in PHP
Asia/Hanoi missing in Swift
Asia/Harbin missing in PHP
Asia/Istanbul missing in PHP
Asia/Istanbul missing in Swift
Asia/Kashgar missing in PHP
Asia/Katmandu missing in PHP
Asia/Kolkata missing in Swift
Asia/Macao missing in PHP
Asia/Macao missing in Swift
Asia/Rangoon missing in PHP
Asia/Saigon missing in PHP
Asia/Saigon missing in Swift
Asia/Tel_Aviv missing in PHP
Asia/Tel_Aviv missing in Swift
Asia/Thimbu missing in PHP
Asia/Thimbu missing in Swift
Asia/Ujung_Pandang missing in PHP
Asia/Ujung_Pandang missing in Swift
Asia/Ulan_Bator missing in PHP
Asia/Ulan_Bator missing in Swift
Atlantic/Faeroe missing in PHP
Atlantic/Faeroe missing in Swift
Atlantic/Jan_Mayen missing in PHP
Atlantic/Jan_Mayen missing in Swift
Australia/ACT missing in PHP
Australia/ACT missing in Swift
Australia/Canberra missing in PHP
Australia/Canberra missing in Swift
Australia/LHI missing in PHP
Australia/LHI missing in Swift
Australia/NSW missing in PHP
Australia/NSW missing in Swift
Australia/North missing in PHP
Australia/North missing in Swift
Australia/Queensland missing in PHP
Australia/Queensland missing in Swift
Australia/South missing in PHP
Australia/South missing in Swift
Australia/Tasmania missing in PHP
Australia/Tasmania missing in Swift
Australia/Victoria missing in PHP
Australia/Victoria missing in Swift
Australia/West missing in PHP
Australia/West missing in Swift
Australia/Yancowinna missing in PHP
Australia/Yancowinna missing in Swift
Brazil/Acre missing in PHP
Brazil/Acre missing in Swift
Brazil/DeNoronha missing in PHP
Brazil/DeNoronha missing in Swift
Brazil/East missing in PHP
Brazil/East missing in Swift
Brazil/West missing in PHP
Brazil/West missing in Swift
CET missing in PHP
CET missing in Swift
CST6CDT missing in PHP
CST6CDT missing in Swift
Canada/Atlantic missing in PHP
Canada/Atlantic missing in Swift
Canada/Central missing in PHP
Canada/Central missing in Swift
Canada/East-Saskatchewan missing in PHP
Canada/East-Saskatchewan missing in Swift
Canada/Eastern missing in PHP
Canada/Eastern missing in Swift
Canada/Mountain missing in PHP
Canada/Mountain missing in Swift
Canada/Newfoundland missing in PHP
Canada/Newfoundland missing in Swift
Canada/Pacific missing in PHP
Canada/Pacific missing in Swift
Canada/Saskatchewan missing in PHP
Canada/Saskatchewan missing in Swift
Canada/Yukon missing in PHP
Canada/Yukon missing in Swift
Chile/Continental missing in PHP
Chile/Continental missing in Swift
Chile/EasterIsland missing in PHP
Chile/EasterIsland missing in Swift
Cuba missing in PHP
Cuba missing in Swift
EET missing in PHP
EET missing in Swift
EST missing in PHP
EST missing in Swift
EST5EDT missing in PHP
EST5EDT missing in Swift
Egypt missing in PHP
Egypt missing in Swift
Eire missing in PHP
Eire missing in Swift
Etc/GMT missing in PHP
Etc/GMT missing in Swift
Etc/GMT+0 missing in PHP
Etc/GMT+0 missing in Swift
Etc/GMT+1 missing in PHP
Etc/GMT+1 missing in Swift
Etc/GMT+10 missing in PHP
Etc/GMT+10 missing in Swift
Etc/GMT+11 missing in PHP
Etc/GMT+11 missing in Swift
Etc/GMT+12 missing in PHP
Etc/GMT+12 missing in Swift
Etc/GMT+2 missing in PHP
Etc/GMT+2 missing in Swift
Etc/GMT+3 missing in PHP
Etc/GMT+3 missing in Swift
Etc/GMT+4 missing in PHP
Etc/GMT+4 missing in Swift
Etc/GMT+5 missing in PHP
Etc/GMT+5 missing in Swift
Etc/GMT+6 missing in PHP
Etc/GMT+6 missing in Swift
Etc/GMT+7 missing in PHP
Etc/GMT+7 missing in Swift
Etc/GMT+8 missing in PHP
Etc/GMT+8 missing in Swift
Etc/GMT+9 missing in PHP
Etc/GMT+9 missing in Swift
Etc/GMT-0 missing in PHP
Etc/GMT-0 missing in Swift
Etc/GMT-1 missing in PHP
Etc/GMT-1 missing in Swift
Etc/GMT-10 missing in PHP
Etc/GMT-10 missing in Swift
Etc/GMT-11 missing in PHP
Etc/GMT-11 missing in Swift
Etc/GMT-12 missing in PHP
Etc/GMT-12 missing in Swift
Etc/GMT-13 missing in PHP
Etc/GMT-13 missing in Swift
Etc/GMT-14 missing in PHP
Etc/GMT-14 missing in Swift
Etc/GMT-2 missing in PHP
Etc/GMT-2 missing in Swift
Etc/GMT-3 missing in PHP
Etc/GMT-3 missing in Swift
Etc/GMT-4 missing in PHP
Etc/GMT-4 missing in Swift
Etc/GMT-5 missing in PHP
Etc/GMT-5 missing in Swift
Etc/GMT-6 missing in PHP
Etc/GMT-6 missing in Swift
Etc/GMT-7 missing in PHP
Etc/GMT-7 missing in Swift
Etc/GMT-8 missing in PHP
Etc/GMT-8 missing in Swift
Etc/GMT-9 missing in PHP
Etc/GMT-9 missing in Swift
Etc/GMT0 missing in PHP
Etc/GMT0 missing in Swift
Etc/Greenwich missing in PHP
Etc/Greenwich missing in Swift
Etc/UCT missing in PHP
Etc/UCT missing in Swift
Etc/UTC missing in PHP
Etc/UTC missing in Swift
Etc/Universal missing in PHP
Etc/Universal missing in Swift
Etc/Zulu missing in PHP
Etc/Zulu missing in Swift
Europe/Belfast missing in PHP
Europe/Belfast missing in Swift
Europe/Nicosia missing in PHP
Europe/Nicosia missing in Swift
Europe/Tiraspol missing in PHP
Europe/Tiraspol missing in Swift
GB missing in PHP
GB missing in Swift
GB-Eire missing in PHP
GB-Eire missing in Swift
GMT missing in PHP
GMT+0 missing in PHP
GMT+0 missing in Swift
GMT-0 missing in PHP
GMT-0 missing in Swift
GMT0 missing in PHP
GMT0 missing in Swift
Greenwich missing in PHP
Greenwich missing in Swift
HST missing in PHP
HST missing in Swift
Hongkong missing in PHP
Hongkong missing in Swift
Iceland missing in PHP
Iceland missing in Swift
Iran missing in PHP
Iran missing in Swift
Israel missing in PHP
Israel missing in Swift
Jamaica missing in PHP
Jamaica missing in Swift
Japan missing in PHP
Japan missing in Swift
Kwajalein missing in PHP
Kwajalein missing in Swift
Libya missing in PHP
Libya missing in Swift
MET missing in PHP
MET missing in Swift
MST missing in PHP
MST missing in Swift
MST7MDT missing in PHP
MST7MDT missing in Swift
Mexico/BajaNorte missing in PHP
Mexico/BajaNorte missing in Swift
Mexico/BajaSur missing in PHP
Mexico/BajaSur missing in Swift
Mexico/General missing in PHP
Mexico/General missing in Swift
NZ missing in PHP
NZ missing in Swift
NZ-CHAT missing in PHP
NZ-CHAT missing in Swift
Navajo missing in PHP
Navajo missing in Swift
PRC missing in PHP
PRC missing in Swift
PST8PDT missing in PHP
PST8PDT missing in Swift
Pacific/Ponape missing in PHP
Pacific/Samoa missing in PHP
Pacific/Samoa missing in Swift
Pacific/Truk missing in PHP
Pacific/Yap missing in PHP
Pacific/Yap missing in Swift
Poland missing in PHP
Poland missing in Swift
Portugal missing in PHP
Portugal missing in Swift
ROC missing in PHP
ROC missing in Swift
ROK missing in PHP
ROK missing in Swift
Singapore missing in PHP
Singapore missing in Swift
Turkey missing in PHP
Turkey missing in Swift
UCT missing in PHP
UCT missing in Swift
US/Alaska missing in PHP
US/Alaska missing in Swift
US/Aleutian missing in PHP
US/Aleutian missing in Swift
US/Arizona missing in PHP
US/Arizona missing in Swift
US/Central missing in PHP
US/Central missing in Swift
US/East-Indiana missing in PHP
US/East-Indiana missing in Swift
US/Eastern missing in PHP
US/Eastern missing in Swift
US/Hawaii missing in PHP
US/Hawaii missing in Swift
US/Indiana-Starke missing in PHP
US/Indiana-Starke missing in Swift
US/Michigan missing in PHP
US/Michigan missing in Swift
US/Mountain missing in PHP
US/Mountain missing in Swift
US/Pacific missing in PHP
US/Pacific missing in Swift
US/Samoa missing in PHP
US/Samoa missing in Swift
UTC missing in Swift
Universal missing in PHP
Universal missing in Swift
W-SU missing in PHP
W-SU missing in Swift
WET missing in PHP
WET missing in Swift
Zulu missing in PHP
Zulu missing in Swift