Skip to content

Instantly share code, notes, and snippets.

@danharper
Last active July 5, 2016 22:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save danharper/a4c7e820f0a28b03e65b to your computer and use it in GitHub Desktop.
Save danharper/a4c7e820f0a28b03e65b to your computer and use it in GitHub Desktop.
Generates a list of all timezone identifiers, with their offset & made (slightly) more human-readable
<?php
// formatted for a <select> box - keys and human-readable values
[
"Pacific/Niue" => "UTC-11:00 (Niue, Pacific)",
"Pacific/Pago_Pago" => "UTC-11:00 (Pago Pago, Pacific)",
"Pacific/Midway" => "UTC-11:00 (Midway, Pacific)",
"Pacific/Honolulu" => "UTC-10:00 (Honolulu, Pacific)",
"America/Adak" => "UTC-10:00 (Adak, America)",
"Pacific/Tahiti" => "UTC-10:00 (Tahiti, Pacific)",
"Pacific/Rarotonga" => "UTC-10:00 (Rarotonga, Pacific)",
"Pacific/Johnston" => "UTC-10:00 (Johnston, Pacific)",
"Pacific/Marquesas" => "UTC-09:30 (Marquesas, Pacific)",
"America/Anchorage" => "UTC-09:00 (Anchorage, America)",
"America/Nome" => "UTC-09:00 (Nome, America)",
"America/Juneau" => "UTC-09:00 (Juneau, America)",
"America/Yakutat" => "UTC-09:00 (Yakutat, America)",
"America/Sitka" => "UTC-09:00 (Sitka, America)",
"Pacific/Gambier" => "UTC-09:00 (Gambier, Pacific)",
"America/Santa_Isabel" => "UTC-08:00 (Santa Isabel, America)",
"Pacific/Pitcairn" => "UTC-08:00 (Pitcairn, Pacific)",
"America/Whitehorse" => "UTC-08:00 (Whitehorse, America)",
"America/Vancouver" => "UTC-08:00 (Vancouver, America)",
"America/Los_Angeles" => "UTC-08:00 (Los Angeles, America)",
"America/Tijuana" => "UTC-08:00 (Tijuana, America)",
"America/Dawson" => "UTC-08:00 (Dawson, America)",
"America/Metlakatla" => "UTC-08:00 (Metlakatla, America)",
"America/Inuvik" => "UTC-07:00 (Inuvik, America)",
"America/Hermosillo" => "UTC-07:00 (Hermosillo, America)",
"America/Edmonton" => "UTC-07:00 (Edmonton, America)",
"America/Denver" => "UTC-07:00 (Denver, America)",
"America/Yellowknife" => "UTC-07:00 (Yellowknife, America)",
"America/Mazatlan" => "UTC-07:00 (Mazatlan, America)",
"America/Dawson_Creek" => "UTC-07:00 (Dawson Creek, America)",
"America/Phoenix" => "UTC-07:00 (Phoenix, America)",
"America/Chihuahua" => "UTC-07:00 (Chihuahua, America)",
"America/Boise" => "UTC-07:00 (Boise, America)",
"America/Cambridge_Bay" => "UTC-07:00 (Cambridge Bay, America)",
"America/Creston" => "UTC-07:00 (Creston, America)",
"America/Ojinaga" => "UTC-07:00 (Ojinaga, America)",
"America/El_Salvador" => "UTC-06:00 (El Salvador, America)",
"America/Guatemala" => "UTC-06:00 (Guatemala, America)",
"America/Costa_Rica" => "UTC-06:00 (Costa Rica, America)",
"America/Cancun" => "UTC-06:00 (Cancun, America)",
"America/Belize" => "UTC-06:00 (Belize, America)",
"America/Matamoros" => "UTC-06:00 (Matamoros, America)",
"America/North_Dakota/New_Salem" => "UTC-06:00 (New Salem, North Dakota, America)",
"America/North_Dakota/Center" => "UTC-06:00 (Center, North Dakota, America)",
"America/Rainy_River" => "UTC-06:00 (Rainy River, America)",
"America/Rankin_Inlet" => "UTC-06:00 (Rankin Inlet, America)",
"America/Resolute" => "UTC-06:00 (Resolute, America)",
"America/Regina" => "UTC-06:00 (Regina, America)",
"America/North_Dakota/Beulah" => "UTC-06:00 (Beulah, North Dakota, America)",
"America/Monterrey" => "UTC-06:00 (Monterrey, America)",
"America/Managua" => "UTC-06:00 (Managua, America)",
"America/Indiana/Tell_City" => "UTC-06:00 (Tell City, Indiana, America)",
"America/Bahia_Banderas" => "UTC-06:00 (Bahia Banderas, America)",
"America/Menominee" => "UTC-06:00 (Menominee, America)",
"America/Mexico_City" => "UTC-06:00 (Mexico City, America)",
"America/Merida" => "UTC-06:00 (Merida, America)",
"America/Indiana/Knox" => "UTC-06:00 (Knox, Indiana, America)",
"America/Chicago" => "UTC-06:00 (Chicago, America)",
"America/Winnipeg" => "UTC-06:00 (Winnipeg, America)",
"America/Swift_Current" => "UTC-06:00 (Swift Current, America)",
"America/Tegucigalpa" => "UTC-06:00 (Tegucigalpa, America)",
"Pacific/Galapagos" => "UTC-06:00 (Galapagos, Pacific)",
"America/Indiana/Petersburg" => "UTC-05:00 (Petersburg, Indiana, America)",
"America/Indiana/Vevay" => "UTC-05:00 (Vevay, Indiana, America)",
"America/Indiana/Vincennes" => "UTC-05:00 (Vincennes, Indiana, America)",
"America/Indiana/Marengo" => "UTC-05:00 (Marengo, Indiana, America)",
"America/Indiana/Winamac" => "UTC-05:00 (Winamac, Indiana, America)",
"America/Havana" => "UTC-05:00 (Havana, America)",
"America/Eirunepe" => "UTC-05:00 (Eirunepe, America)",
"America/Grand_Turk" => "UTC-05:00 (Grand Turk, America)",
"America/Guayaquil" => "UTC-05:00 (Guayaquil, America)",
"America/Thunder_Bay" => "UTC-05:00 (Thunder Bay, America)",
"America/Indiana/Indianapolis" => "UTC-05:00 (Indianapolis, Indiana, America)",
"America/Iqaluit" => "UTC-05:00 (Iqaluit, America)",
"America/Pangnirtung" => "UTC-05:00 (Pangnirtung, America)",
"America/Panama" => "UTC-05:00 (Panama, America)",
"America/Port-au-Prince" => "UTC-05:00 (Port-au-Prince, America)",
"Pacific/Easter" => "UTC-05:00 (Easter, Pacific)",
"America/Rio_Branco" => "UTC-05:00 (Rio Branco, America)",
"America/Nipigon" => "UTC-05:00 (Nipigon, America)",
"America/New_York" => "UTC-05:00 (New York, America)",
"America/Kentucky/Louisville" => "UTC-05:00 (Louisville, Kentucky, America)",
"America/Jamaica" => "UTC-05:00 (Jamaica, America)",
"America/Kentucky/Monticello" => "UTC-05:00 (Monticello, Kentucky, America)",
"America/Lima" => "UTC-05:00 (Lima, America)",
"America/Nassau" => "UTC-05:00 (Nassau, America)",
"America/Detroit" => "UTC-05:00 (Detroit, America)",
"America/Toronto" => "UTC-05:00 (Toronto, America)",
"America/Bogota" => "UTC-05:00 (Bogota, America)",
"America/Atikokan" => "UTC-05:00 (Atikokan, America)",
"America/Cayman" => "UTC-05:00 (Cayman, America)",
"America/Caracas" => "UTC-04:30 (Caracas, America)",
"America/Port_of_Spain" => "UTC-04:00 (Port of Spain, America)",
"America/Barbados" => "UTC-04:00 (Barbados, America)",
"Atlantic/Bermuda" => "UTC-04:00 (Bermuda, Atlantic)",
"America/Tortola" => "UTC-04:00 (Tortola, America)",
"America/Boa_Vista" => "UTC-04:00 (Boa Vista, America)",
"America/Anguilla" => "UTC-04:00 (Anguilla, America)",
"America/Moncton" => "UTC-04:00 (Moncton, America)",
"America/Porto_Velho" => "UTC-04:00 (Porto Velho, America)",
"America/Blanc-Sablon" => "UTC-04:00 (Blanc-Sablon, America)",
"America/Aruba" => "UTC-04:00 (Aruba, America)",
"America/Manaus" => "UTC-04:00 (Manaus, America)",
"America/Marigot" => "UTC-04:00 (Marigot, America)",
"America/Martinique" => "UTC-04:00 (Martinique, America)",
"America/Lower_Princes" => "UTC-04:00 (Lower Princes, America)",
"America/St_Barthelemy" => "UTC-04:00 (St Barthelemy, America)",
"America/Halifax" => "UTC-04:00 (Halifax, America)",
"America/Kralendijk" => "UTC-04:00 (Kralendijk, America)",
"America/La_Paz" => "UTC-04:00 (La Paz, America)",
"America/Montserrat" => "UTC-04:00 (Montserrat, America)",
"America/Antigua" => "UTC-04:00 (Antigua, America)",
"America/Guyana" => "UTC-04:00 (Guyana, America)",
"America/St_Lucia" => "UTC-04:00 (St Lucia, America)",
"America/St_Thomas" => "UTC-04:00 (St Thomas, America)",
"America/Dominica" => "UTC-04:00 (Dominica, America)",
"America/St_Vincent" => "UTC-04:00 (St Vincent, America)",
"America/Santo_Domingo" => "UTC-04:00 (Santo Domingo, America)",
"America/Glace_Bay" => "UTC-04:00 (Glace Bay, America)",
"America/Curacao" => "UTC-04:00 (Curacao, America)",
"America/St_Kitts" => "UTC-04:00 (St Kitts, America)",
"America/Thule" => "UTC-04:00 (Thule, America)",
"America/Guadeloupe" => "UTC-04:00 (Guadeloupe, America)",
"America/Goose_Bay" => "UTC-04:00 (Goose Bay, America)",
"America/Puerto_Rico" => "UTC-04:00 (Puerto Rico, America)",
"America/Grenada" => "UTC-04:00 (Grenada, America)",
"America/St_Johns" => "UTC-03:30 (St Johns, America)",
"America/Argentina/Tucuman" => "UTC-03:00 (Tucuman, Argentina, America)",
"America/Argentina/San_Juan" => "UTC-03:00 (San Juan, Argentina, America)",
"America/Santarem" => "UTC-03:00 (Santarem, America)",
"America/Santiago" => "UTC-03:00 (Santiago, America)",
"America/Argentina/San_Luis" => "UTC-03:00 (San Luis, Argentina, America)",
"America/Argentina/Salta" => "UTC-03:00 (Salta, Argentina, America)",
"America/Argentina/La_Rioja" => "UTC-03:00 (La Rioja, Argentina, America)",
"America/Recife" => "UTC-03:00 (Recife, America)",
"America/Miquelon" => "UTC-03:00 (Miquelon, America)",
"America/Argentina/Mendoza" => "UTC-03:00 (Mendoza, Argentina, America)",
"America/Paramaribo" => "UTC-03:00 (Paramaribo, America)",
"Atlantic/Stanley" => "UTC-03:00 (Stanley, Atlantic)",
"America/Argentina/Jujuy" => "UTC-03:00 (Jujuy, Argentina, America)",
"America/Argentina/Rio_Gallegos" => "UTC-03:00 (Rio Gallegos, Argentina, America)",
"America/Argentina/Cordoba" => "UTC-03:00 (Cordoba, Argentina, America)",
"America/Argentina/Ushuaia" => "UTC-03:00 (Ushuaia, Argentina, America)",
"America/Araguaina" => "UTC-03:00 (Araguaina, America)",
"America/Belem" => "UTC-03:00 (Belem, America)",
"America/Argentina/Buenos_Aires" => "UTC-03:00 (Buenos Aires, Argentina, America)",
"America/Bahia" => "UTC-03:00 (Bahia, America)",
"America/Argentina/Catamarca" => "UTC-03:00 (Catamarca, Argentina, America)",
"America/Campo_Grande" => "UTC-03:00 (Campo Grande, America)",
"America/Cuiaba" => "UTC-03:00 (Cuiaba, America)",
"America/Cayenne" => "UTC-03:00 (Cayenne, America)",
"America/Fortaleza" => "UTC-03:00 (Fortaleza, America)",
"America/Godthab" => "UTC-03:00 (Godthab, America)",
"America/Asuncion" => "UTC-03:00 (Asuncion, America)",
"Antarctica/Palmer" => "UTC-03:00 (Palmer, Antarctica)",
"America/Maceio" => "UTC-03:00 (Maceio, America)",
"Antarctica/Rothera" => "UTC-03:00 (Rothera, Antarctica)",
"Atlantic/South_Georgia" => "UTC-02:00 (South Georgia, Atlantic)",
"America/Montevideo" => "UTC-02:00 (Montevideo, America)",
"America/Sao_Paulo" => "UTC-02:00 (Sao Paulo, America)",
"America/Noronha" => "UTC-02:00 (Noronha, America)",
"Atlantic/Cape_Verde" => "UTC-01:00 (Cape Verde, Atlantic)",
"America/Scoresbysund" => "UTC-01:00 (Scoresbysund, America)",
"Atlantic/Azores" => "UTC-01:00 (Azores, Atlantic)",
"Atlantic/Canary" => "UTC (Canary, Atlantic)",
"Atlantic/Reykjavik" => "UTC (Reykjavik, Atlantic)",
"Europe/Guernsey" => "UTC (Guernsey, Europe)",
"Europe/Dublin" => "UTC (Dublin, Europe)",
"Atlantic/Madeira" => "UTC (Madeira, Atlantic)",
"Europe/London" => "UTC (London, Europe)",
"Atlantic/Faroe" => "UTC (Faroe, Atlantic)",
"Atlantic/St_Helena" => "UTC (St Helena, Atlantic)",
"Europe/Isle_of_Man" => "UTC (Isle of Man, Europe)",
"Europe/Jersey" => "UTC (Jersey, Europe)",
"Europe/Lisbon" => "UTC (Lisbon, Europe)",
"Africa/Abidjan" => "UTC (Abidjan, Africa)",
"Antarctica/Troll" => "UTC (Troll, Antarctica)",
"Africa/Dakar" => "UTC (Dakar, Africa)",
"America/Danmarkshavn" => "UTC (Danmarkshavn, America)",
"Africa/Freetown" => "UTC (Freetown, Africa)",
"Africa/Lome" => "UTC (Lome, Africa)",
"Africa/Conakry" => "UTC (Conakry, Africa)",
"Africa/Casablanca" => "UTC (Casablanca, Africa)",
"Africa/Accra" => "UTC (Accra, Africa)",
"Africa/Bamako" => "UTC (Bamako, Africa)",
"Africa/Banjul" => "UTC (Banjul, Africa)",
"Africa/Bissau" => "UTC (Bissau, Africa)",
"Africa/Monrovia" => "UTC (Monrovia, Africa)",
"Africa/El_Aaiun" => "UTC (El Aaiun, Africa)",
"Africa/Sao_Tome" => "UTC (Sao Tome, Africa)",
"Africa/Ouagadougou" => "UTC (Ouagadougou, Africa)",
"Africa/Nouakchott" => "UTC (Nouakchott, Africa)",
"Europe/Luxembourg" => "UTC+01:00 (Luxembourg, Europe)",
"Europe/Madrid" => "UTC+01:00 (Madrid, Europe)",
"Europe/Ljubljana" => "UTC+01:00 (Ljubljana, Europe)",
"Africa/Tunis" => "UTC+01:00 (Tunis, Africa)",
"Europe/Gibraltar" => "UTC+01:00 (Gibraltar, Europe)",
"Africa/Ceuta" => "UTC+01:00 (Ceuta, Africa)",
"Europe/Malta" => "UTC+01:00 (Malta, Europe)",
"Europe/Prague" => "UTC+01:00 (Prague, Europe)",
"Europe/Rome" => "UTC+01:00 (Rome, Europe)",
"Europe/San_Marino" => "UTC+01:00 (San Marino, Europe)",
"Europe/Podgorica" => "UTC+01:00 (Podgorica, Europe)",
"Europe/Paris" => "UTC+01:00 (Paris, Europe)",
"Europe/Monaco" => "UTC+01:00 (Monaco, Europe)",
"Europe/Oslo" => "UTC+01:00 (Oslo, Europe)",
"Europe/Zurich" => "UTC+01:00 (Zurich, Europe)",
"Europe/Copenhagen" => "UTC+01:00 (Copenhagen, Europe)",
"Africa/Niamey" => "UTC+01:00 (Niamey, Africa)",
"Africa/Ndjamena" => "UTC+01:00 (Ndjamena, Africa)",
"Europe/Zagreb" => "UTC+01:00 (Zagreb, Europe)",
"Africa/Douala" => "UTC+01:00 (Douala, Africa)",
"Africa/Brazzaville" => "UTC+01:00 (Brazzaville, Africa)",
"Europe/Amsterdam" => "UTC+01:00 (Amsterdam, Europe)",
"Europe/Andorra" => "UTC+01:00 (Andorra, Europe)",
"Europe/Belgrade" => "UTC+01:00 (Belgrade, Europe)",
"Europe/Berlin" => "UTC+01:00 (Berlin, Europe)",
"Europe/Busingen" => "UTC+01:00 (Busingen, Europe)",
"Africa/Bangui" => "UTC+01:00 (Bangui, Africa)",
"Europe/Budapest" => "UTC+01:00 (Budapest, Europe)",
"Europe/Warsaw" => "UTC+01:00 (Warsaw, Europe)",
"Europe/Bratislava" => "UTC+01:00 (Bratislava, Europe)",
"Europe/Brussels" => "UTC+01:00 (Brussels, Europe)",
"Europe/Sarajevo" => "UTC+01:00 (Sarajevo, Europe)",
"Africa/Porto-Novo" => "UTC+01:00 (Porto-Novo, Africa)",
"Europe/Vatican" => "UTC+01:00 (Vatican, Europe)",
"Arctic/Longyearbyen" => "UTC+01:00 (Longyearbyen, Arctic)",
"Europe/Tirane" => "UTC+01:00 (Tirane, Europe)",
"Europe/Stockholm" => "UTC+01:00 (Stockholm, Europe)",
"Africa/Kinshasa" => "UTC+01:00 (Kinshasa, Africa)",
"Africa/Luanda" => "UTC+01:00 (Luanda, Africa)",
"Europe/Vienna" => "UTC+01:00 (Vienna, Europe)",
"Africa/Algiers" => "UTC+01:00 (Algiers, Africa)",
"Africa/Libreville" => "UTC+01:00 (Libreville, Africa)",
"Africa/Lagos" => "UTC+01:00 (Lagos, Africa)",
"Africa/Malabo" => "UTC+01:00 (Malabo, Africa)",
"Europe/Vaduz" => "UTC+01:00 (Vaduz, Europe)",
"Europe/Skopje" => "UTC+01:00 (Skopje, Europe)",
"Africa/Kigali" => "UTC+02:00 (Kigali, Africa)",
"Europe/Athens" => "UTC+02:00 (Athens, Europe)",
"Asia/Beirut" => "UTC+02:00 (Beirut, Asia)",
"Asia/Gaza" => "UTC+02:00 (Gaza, Asia)",
"Africa/Cairo" => "UTC+02:00 (Cairo, Africa)",
"Asia/Hebron" => "UTC+02:00 (Hebron, Asia)",
"Europe/Helsinki" => "UTC+02:00 (Helsinki, Europe)",
"Europe/Riga" => "UTC+02:00 (Riga, Europe)",
"Europe/Zaporozhye" => "UTC+02:00 (Zaporozhye, Europe)",
"Africa/Mbabane" => "UTC+02:00 (Mbabane, Africa)",
"Africa/Blantyre" => "UTC+02:00 (Blantyre, Africa)",
"Europe/Vilnius" => "UTC+02:00 (Vilnius, Europe)",
"Europe/Bucharest" => "UTC+02:00 (Bucharest, Europe)",
"Africa/Tripoli" => "UTC+02:00 (Tripoli, Africa)",
"Asia/Nicosia" => "UTC+02:00 (Nicosia, Asia)",
"Asia/Damascus" => "UTC+02:00 (Damascus, Asia)",
"Europe/Chisinau" => "UTC+02:00 (Chisinau, Europe)",
"Europe/Istanbul" => "UTC+02:00 (Istanbul, Europe)",
"Europe/Tallinn" => "UTC+02:00 (Tallinn, Europe)",
"Europe/Sofia" => "UTC+02:00 (Sofia, Europe)",
"Africa/Johannesburg" => "UTC+02:00 (Johannesburg, Africa)",
"Africa/Lubumbashi" => "UTC+02:00 (Lubumbashi, Africa)",
"Africa/Maseru" => "UTC+02:00 (Maseru, Africa)",
"Africa/Maputo" => "UTC+02:00 (Maputo, Africa)",
"Africa/Lusaka" => "UTC+02:00 (Lusaka, Africa)",
"Europe/Mariehamn" => "UTC+02:00 (Mariehamn, Europe)",
"Africa/Gaborone" => "UTC+02:00 (Gaborone, Africa)",
"Europe/Uzhgorod" => "UTC+02:00 (Uzhgorod, Europe)",
"Africa/Windhoek" => "UTC+02:00 (Windhoek, Africa)",
"Europe/Kiev" => "UTC+02:00 (Kiev, Europe)",
"Asia/Jerusalem" => "UTC+02:00 (Jerusalem, Asia)",
"Asia/Amman" => "UTC+02:00 (Amman, Asia)",
"Africa/Bujumbura" => "UTC+02:00 (Bujumbura, Africa)",
"Africa/Harare" => "UTC+02:00 (Harare, Africa)",
"Europe/Kaliningrad" => "UTC+02:00 (Kaliningrad, Europe)",
"Europe/Volgograd" => "UTC+03:00 (Volgograd, Europe)",
"Africa/Nairobi" => "UTC+03:00 (Nairobi, Africa)",
"Indian/Mayotte" => "UTC+03:00 (Mayotte, Indian)",
"Africa/Juba" => "UTC+03:00 (Juba, Africa)",
"Africa/Kampala" => "UTC+03:00 (Kampala, Africa)",
"Africa/Khartoum" => "UTC+03:00 (Khartoum, Africa)",
"Africa/Mogadishu" => "UTC+03:00 (Mogadishu, Africa)",
"Antarctica/Syowa" => "UTC+03:00 (Syowa, Antarctica)",
"Indian/Antananarivo" => "UTC+03:00 (Antananarivo, Indian)",
"Indian/Comoro" => "UTC+03:00 (Comoro, Indian)",
"Asia/Aden" => "UTC+03:00 (Aden, Asia)",
"Africa/Asmara" => "UTC+03:00 (Asmara, Africa)",
"Europe/Minsk" => "UTC+03:00 (Minsk, Europe)",
"Asia/Bahrain" => "UTC+03:00 (Bahrain, Asia)",
"Europe/Moscow" => "UTC+03:00 (Moscow, Europe)",
"Asia/Baghdad" => "UTC+03:00 (Baghdad, Asia)",
"Africa/Dar_es_Salaam" => "UTC+03:00 (Dar es Salaam, Africa)",
"Asia/Kuwait" => "UTC+03:00 (Kuwait, Asia)",
"Asia/Qatar" => "UTC+03:00 (Qatar, Asia)",
"Africa/Addis_Ababa" => "UTC+03:00 (Addis Ababa, Africa)",
"Europe/Simferopol" => "UTC+03:00 (Simferopol, Europe)",
"Asia/Riyadh" => "UTC+03:00 (Riyadh, Asia)",
"Africa/Djibouti" => "UTC+03:00 (Djibouti, Africa)",
"Asia/Tehran" => "UTC+03:30 (Tehran, Asia)",
"Asia/Baku" => "UTC+04:00 (Baku, Asia)",
"Asia/Dubai" => "UTC+04:00 (Dubai, Asia)",
"Indian/Mauritius" => "UTC+04:00 (Mauritius, Indian)",
"Europe/Samara" => "UTC+04:00 (Samara, Europe)",
"Asia/Muscat" => "UTC+04:00 (Muscat, Asia)",
"Indian/Reunion" => "UTC+04:00 (Reunion, Indian)",
"Indian/Mahe" => "UTC+04:00 (Mahe, Indian)",
"Asia/Tbilisi" => "UTC+04:00 (Tbilisi, Asia)",
"Asia/Yerevan" => "UTC+04:00 (Yerevan, Asia)",
"Asia/Kabul" => "UTC+04:30 (Kabul, Asia)",
"Indian/Kerguelen" => "UTC+05:00 (Kerguelen, Indian)",
"Asia/Tashkent" => "UTC+05:00 (Tashkent, Asia)",
"Asia/Ashgabat" => "UTC+05:00 (Ashgabat, Asia)",
"Asia/Dushanbe" => "UTC+05:00 (Dushanbe, Asia)",
"Asia/Karachi" => "UTC+05:00 (Karachi, Asia)",
"Asia/Oral" => "UTC+05:00 (Oral, Asia)",
"Asia/Samarkand" => "UTC+05:00 (Samarkand, Asia)",
"Asia/Aqtobe" => "UTC+05:00 (Aqtobe, Asia)",
"Indian/Maldives" => "UTC+05:00 (Maldives, Indian)",
"Antarctica/Mawson" => "UTC+05:00 (Mawson, Antarctica)",
"Asia/Yekaterinburg" => "UTC+05:00 (Yekaterinburg, Asia)",
"Asia/Aqtau" => "UTC+05:00 (Aqtau, Asia)",
"Asia/Colombo" => "UTC+05:30 (Colombo, Asia)",
"Asia/Kolkata" => "UTC+05:30 (Kolkata, Asia)",
"Asia/Kathmandu" => "UTC+05:45 (Kathmandu, Asia)",
"Asia/Urumqi" => "UTC+06:00 (Urumqi, Asia)",
"Asia/Bishkek" => "UTC+06:00 (Bishkek, Asia)",
"Asia/Thimphu" => "UTC+06:00 (Thimphu, Asia)",
"Asia/Dhaka" => "UTC+06:00 (Dhaka, Asia)",
"Asia/Novosibirsk" => "UTC+06:00 (Novosibirsk, Asia)",
"Indian/Chagos" => "UTC+06:00 (Chagos, Indian)",
"Asia/Qyzylorda" => "UTC+06:00 (Qyzylorda, Asia)",
"Antarctica/Vostok" => "UTC+06:00 (Vostok, Antarctica)",
"Asia/Almaty" => "UTC+06:00 (Almaty, Asia)",
"Asia/Omsk" => "UTC+06:00 (Omsk, Asia)",
"Indian/Cocos" => "UTC+06:30 (Cocos, Indian)",
"Asia/Rangoon" => "UTC+06:30 (Rangoon, Asia)",
"Asia/Ho_Chi_Minh" => "UTC+07:00 (Ho Chi Minh, Asia)",
"Asia/Vientiane" => "UTC+07:00 (Vientiane, Asia)",
"Antarctica/Davis" => "UTC+07:00 (Davis, Antarctica)",
"Asia/Bangkok" => "UTC+07:00 (Bangkok, Asia)",
"Indian/Christmas" => "UTC+07:00 (Christmas, Indian)",
"Asia/Hovd" => "UTC+07:00 (Hovd, Asia)",
"Asia/Krasnoyarsk" => "UTC+07:00 (Krasnoyarsk, Asia)",
"Asia/Novokuznetsk" => "UTC+07:00 (Novokuznetsk, Asia)",
"Asia/Phnom_Penh" => "UTC+07:00 (Phnom Penh, Asia)",
"Asia/Pontianak" => "UTC+07:00 (Pontianak, Asia)",
"Asia/Jakarta" => "UTC+07:00 (Jakarta, Asia)",
"Asia/Ulaanbaatar" => "UTC+08:00 (Ulaanbaatar, Asia)",
"Asia/Makassar" => "UTC+08:00 (Makassar, Asia)",
"Asia/Manila" => "UTC+08:00 (Manila, Asia)",
"Asia/Shanghai" => "UTC+08:00 (Shanghai, Asia)",
"Antarctica/Casey" => "UTC+08:00 (Casey, Antarctica)",
"Asia/Macau" => "UTC+08:00 (Macau, Asia)",
"Asia/Brunei" => "UTC+08:00 (Brunei, Asia)",
"Asia/Taipei" => "UTC+08:00 (Taipei, Asia)",
"Asia/Singapore" => "UTC+08:00 (Singapore, Asia)",
"Asia/Hong_Kong" => "UTC+08:00 (Hong Kong, Asia)",
"Australia/Perth" => "UTC+08:00 (Perth, Australia)",
"Asia/Kuala_Lumpur" => "UTC+08:00 (Kuala Lumpur, Asia)",
"Asia/Chita" => "UTC+08:00 (Chita, Asia)",
"Asia/Kuching" => "UTC+08:00 (Kuching, Asia)",
"Asia/Choibalsan" => "UTC+08:00 (Choibalsan, Asia)",
"Asia/Irkutsk" => "UTC+08:00 (Irkutsk, Asia)",
"Australia/Eucla" => "UTC+08:45 (Eucla, Australia)",
"Asia/Tokyo" => "UTC+09:00 (Tokyo, Asia)",
"Asia/Dili" => "UTC+09:00 (Dili, Asia)",
"Pacific/Palau" => "UTC+09:00 (Palau, Pacific)",
"Asia/Jayapura" => "UTC+09:00 (Jayapura, Asia)",
"Asia/Khandyga" => "UTC+09:00 (Khandyga, Asia)",
"Asia/Seoul" => "UTC+09:00 (Seoul, Asia)",
"Asia/Pyongyang" => "UTC+09:00 (Pyongyang, Asia)",
"Asia/Yakutsk" => "UTC+09:00 (Yakutsk, Asia)",
"Australia/Darwin" => "UTC+09:30 (Darwin, Australia)",
"Asia/Vladivostok" => "UTC+10:00 (Vladivostok, Asia)",
"Pacific/Guam" => "UTC+10:00 (Guam, Pacific)",
"Australia/Brisbane" => "UTC+10:00 (Brisbane, Australia)",
"Asia/Sakhalin" => "UTC+10:00 (Sakhalin, Asia)",
"Asia/Magadan" => "UTC+10:00 (Magadan, Asia)",
"Antarctica/DumontDUrville" => "UTC+10:00 (DumontDUrville, Antarctica)",
"Pacific/Saipan" => "UTC+10:00 (Saipan, Pacific)",
"Pacific/Port_Moresby" => "UTC+10:00 (Port Moresby, Pacific)",
"Pacific/Chuuk" => "UTC+10:00 (Chuuk, Pacific)",
"Asia/Ust-Nera" => "UTC+10:00 (Ust-Nera, Asia)",
"Australia/Lindeman" => "UTC+10:00 (Lindeman, Australia)",
"Australia/Adelaide" => "UTC+10:30 (Adelaide, Australia)",
"Australia/Broken_Hill" => "UTC+10:30 (Broken Hill, Australia)",
"Australia/Hobart" => "UTC+11:00 (Hobart, Australia)",
"Australia/Currie" => "UTC+11:00 (Currie, Australia)",
"Pacific/Kosrae" => "UTC+11:00 (Kosrae, Pacific)",
"Pacific/Noumea" => "UTC+11:00 (Noumea, Pacific)",
"Pacific/Pohnpei" => "UTC+11:00 (Pohnpei, Pacific)",
"Australia/Melbourne" => "UTC+11:00 (Melbourne, Australia)",
"Australia/Lord_Howe" => "UTC+11:00 (Lord Howe, Australia)",
"Antarctica/Macquarie" => "UTC+11:00 (Macquarie, Antarctica)",
"Australia/Sydney" => "UTC+11:00 (Sydney, Australia)",
"Asia/Srednekolymsk" => "UTC+11:00 (Srednekolymsk, Asia)",
"Pacific/Bougainville" => "UTC+11:00 (Bougainville, Pacific)",
"Pacific/Guadalcanal" => "UTC+11:00 (Guadalcanal, Pacific)",
"Pacific/Efate" => "UTC+11:00 (Efate, Pacific)",
"Pacific/Norfolk" => "UTC+11:30 (Norfolk, Pacific)",
"Pacific/Wallis" => "UTC+12:00 (Wallis, Pacific)",
"Pacific/Wake" => "UTC+12:00 (Wake, Pacific)",
"Pacific/Funafuti" => "UTC+12:00 (Funafuti, Pacific)",
"Asia/Anadyr" => "UTC+12:00 (Anadyr, Asia)",
"Pacific/Fiji" => "UTC+12:00 (Fiji, Pacific)",
"Pacific/Tarawa" => "UTC+12:00 (Tarawa, Pacific)",
"Asia/Kamchatka" => "UTC+12:00 (Kamchatka, Asia)",
"Pacific/Nauru" => "UTC+12:00 (Nauru, Pacific)",
"Pacific/Kwajalein" => "UTC+12:00 (Kwajalein, Pacific)",
"Pacific/Majuro" => "UTC+12:00 (Majuro, Pacific)",
"Pacific/Tongatapu" => "UTC+13:00 (Tongatapu, Pacific)",
"Pacific/Enderbury" => "UTC+13:00 (Enderbury, Pacific)",
"Antarctica/McMurdo" => "UTC+13:00 (McMurdo, Antarctica)",
"Pacific/Auckland" => "UTC+13:00 (Auckland, Pacific)",
"Pacific/Fakaofo" => "UTC+13:00 (Fakaofo, Pacific)",
"Pacific/Chatham" => "UTC+13:45 (Chatham, Pacific)",
"Pacific/Apia" => "UTC+14:00 (Apia, Pacific)",
"Pacific/Kiritimati" => "UTC+14:00 (Kiritimati, Pacific)"
];
<?php
class TimeZones {
/**
* @return array
*/
public function generate()
{
$identifiers = DateTimeZone::listIdentifiers();
$utc = new \DateTime(null, new DateTimeZone('UTC'));
$offsets = [];
foreach ($identifiers as $identifier)
{
if ($identifier === 'UTC') continue;
$offsets[$identifier] = (new DateTimeZone($identifier))->getOffset($utc);
}
asort($offsets);
$fields = [];
foreach ($offsets as $identifier => $offset)
{
$fields[$identifier] = $this->humanReadableOffset($offset) . ' (' . $this->humanReadableName($identifier) . ')';
}
return $fields;
}
/**
* @param int $offset
* @return string
*/
private function humanReadableOffset($offset)
{
if ($offset === 0)
{
return 'UTC';
}
else
{
$sign = $offset > 0 ? '+' : '-';
$formattedOffset = gmdate('H:i', abs($offset));
return 'UTC' . $sign . $formattedOffset;
}
}
/**
* @param string $identifier
* @return string
*/
private function humanReadableName($identifier)
{
return implode(', ', array_reverse(explode('/', str_replace('_', ' ', $identifier))));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment