diff options
Diffstat (limited to 'src/third_party/timelib-2021.06/gettzmapping.php')
-rw-r--r-- | src/third_party/timelib-2021.06/gettzmapping.php | 865 |
1 files changed, 865 insertions, 0 deletions
diff --git a/src/third_party/timelib-2021.06/gettzmapping.php b/src/third_party/timelib-2021.06/gettzmapping.php new file mode 100644 index 00000000000..21539e8bfd8 --- /dev/null +++ b/src/third_party/timelib-2021.06/gettzmapping.php @@ -0,0 +1,865 @@ +<?php + $zones = timezone_identifiers_list( DateTimeZone::ALL_WITH_BC ); + $priorityA = array( + 'acst' => 'America/Porto_Acre', + 'act' => 'America/Porto_Acre', + 'acdt' => 'Australia/Adelaide', + 'acst' => 'Australia/Adelaide', + 'addt' => 'America/Goose_Bay', + 'adt' => 'America/Halifax', + 'aedt' => 'Australia/Melbourne', + 'aest' => 'Australia/Melbourne', + 'aft' => 'Asia/Kabul', + 'ahdt' => 'America/Anchorage', + 'ahst' => 'America/Anchorage', + 'akdt' => 'America/Anchorage', + 'akst' => 'America/Anchorage', + 'aktst' => 'Asia/Aqtobe', + 'aktt' => 'Asia/Aqtobe', + 'almst' => 'Asia/Almaty', + 'almt' => 'Asia/Almaty', + 'amst' => 'Asia/Yerevan', + 'amt' => 'Asia/Yerevan', + 'anast' => 'Asia/Anadyr', + 'anat' => 'Asia/Anadyr', + 'ant' => 'America/Curacao', + 'apt' => 'America/Halifax', + 'aqtst' => 'Asia/Aqtau', + 'aqtt' => 'Asia/Aqtau', + 'arst' => 'America/Buenos_Aires', + 'art' => 'America/Buenos_Aires', + 'ashst' => 'Asia/Ashkhabad', + 'asht' => 'Asia/Ashkhabad', + 'ast' => 'Asia/Riyadh', + 'awt' => 'America/Halifax', + 'awdt' => 'Australia/Perth', + 'awst' => 'Australia/Perth', + 'azomt' => 'Atlantic/Azores', + 'azost' => 'Atlantic/Azores', + 'azot' => 'Atlantic/Azores', + 'azst' => 'Asia/Baku', + 'azt' => 'Asia/Baku', + 'bakst' => 'Asia/Baku', + 'bakt' => 'Asia/Baku', + 'bdst' => 'Europe/London', + 'bdt' => 'America/Adak', + 'beat' => 'Africa/Mogadishu', + 'beaut' => 'Africa/Nairobi', + 'bmt' => 'America/Barbados', + 'bnt' => 'Asia/Brunei', + 'bortst' => 'Asia/Kuching', + 'bort' => 'Asia/Kuching', + 'bost' => 'America/La_Paz', + 'bot' => 'America/La_Paz', + 'brst' => 'America/Sao_Paulo', + 'brt' => 'America/Sao_Paulo', + 'bst' => 'Europe/London', + 'btt' => 'Asia/Thimbu', + 'burt' => 'Asia/Kolkata', + 'cadt' => 'Australia/Adelaide', + 'cant' => 'Atlantic/Canary', + 'cast' => 'Australia/Adelaide', + 'cat' => 'America/Anchorage', + 'cawt' => 'America/Anchorage', + 'cddt' => 'America/Rankin_Inlet', + 'cdt' => 'America/Chicago', + 'cemt' => 'Europe/Berlin', + 'cest' => 'Europe/Berlin', + 'cet' => 'Europe/Berlin', + 'cgst' => 'America/Scoresbysund', + 'cgt' => 'America/Scoresbysund', + 'chadt' => 'Pacific/Chatham', + 'chast' => 'Pacific/Chatham', + 'chat' => 'Asia/Harbin', + 'chdt' => 'America/Belize', + 'chost' => 'Asia/Choibalsan', + 'chot' => 'Asia/Choibalsan', + 'cit' => 'Asia/Dili', + 'cjt' => 'Asia/Sakhalin', + 'ckhst' => 'Pacific/Rarotonga', + 'ckt' => 'Pacific/Rarotonga', + 'clst' => 'America/Santiago', + 'clt' => 'America/Santiago', + 'cost' => 'America/Bogota', + 'cot' => 'America/Bogota', + 'cpt' => 'America/Chicago', + 'cst' => 'America/Chicago', + 'cvst' => 'Atlantic/Cape_Verde', + 'cvt' => 'Atlantic/Cape_Verde', + 'cwt' => 'America/Chicago', + 'chst' => 'Pacific/Guam', + 'dact' => 'Asia/Dacca', + 'davt' => 'Antarctica/Davis', + 'ddut' => 'Antarctica/DumontDUrville', + 'dusst' => 'Asia/Dushanbe', + 'dust' => 'Asia/Dushanbe', + 'easst' => 'Chile/EasterIsland', + 'east' => 'Chile/EasterIsland', + 'eat' => 'Africa/Khartoum', + 'ect' => 'America/Guayaquil', + 'eddt' => 'America/Iqaluit', + 'edt' => 'America/New_York', + 'eest' => 'Europe/Helsinki', + 'eet' => 'Europe/Helsinki', + 'egst' => 'America/Scoresbysund', + 'egt' => 'America/Scoresbysund', + 'ehdt' => 'America/Santo_Domingo', + 'eit' => 'Asia/Jayapura', + 'ept' => 'America/New_York', + 'est' => 'America/New_York', + 'ewt' => 'America/New_York', + 'fjst' => 'Pacific/Fiji', + 'fjt' => 'Pacific/Fiji', + 'fkst' => 'Atlantic/Stanley', + 'fkt' => 'Atlantic/Stanley', + 'fnst' => 'America/Noronha', + 'fnt' => 'America/Noronha', + 'fort' => 'Asia/Aqtau', + 'frust' => 'Asia/Bishkek', + 'frut' => 'Asia/Bishkek', + 'galt' => 'Pacific/Galapagos', + 'gamt' => 'Pacific/Gambier', + 'gbgt' => 'America/Guyana', + 'gest' => 'Asia/Tbilisi', + 'get' => 'Asia/Tbilisi', + 'gft' => 'America/Cayenne', + 'ghst' => 'Africa/Accra', + 'gst' => 'Asia/Dubai', + 'gyt' => 'America/Guyana', + 'hadt' => 'America/Adak', + 'hast' => 'America/Adak', + 'hdt' => 'Pacific/Honolulu', + 'hkst' => 'Asia/Hong_Kong', + 'hkt' => 'Asia/Hong_Kong', + 'hovst' => 'Asia/Hovd', + 'hovt' => 'Asia/Hovd', + 'hpt' => 'Pacific/Honolulu', + 'hst' => 'Pacific/Honolulu', + 'hwt' => 'Pacific/Honolulu', + 'ict' => 'Asia/Bangkok', + 'iddt' => 'Asia/Jerusalem', + 'idt' => 'Asia/Jerusalem', + 'ihst' => 'Asia/Colombo', + 'iot' => 'Indian/Chagos', + 'irdt' => 'Asia/Tehran', + 'irkst' => 'Asia/Irkutsk', + 'irkt' => 'Asia/Irkutsk', + 'irst' => 'Asia/Tehran', + 'isst' => 'Atlantic/Reykjavik', + 'ist' => 'Asia/Jerusalem', + 'javt' => 'Asia/Jakarta', + 'jdt' => 'Asia/Tokyo', + 'jst' => 'Asia/Tokyo', + 'kart' => 'Asia/Karachi', + 'kast' => 'Asia/Kashgar', + 'kdt' => 'Asia/Seoul', + 'kgst' => 'Asia/Bishkek', + 'kgt' => 'Asia/Bishkek', + 'kizst' => 'Asia/Qyzylorda', + 'kizt' => 'Asia/Qyzylorda', + 'kmt' => 'Europe/Vilnius', + 'kost' => 'Pacific/Kosrae', + 'krast' => 'Asia/Krasnoyarsk', + 'krat' => 'Asia/Krasnoyarsk', + 'kst' => 'Asia/Seoul', + 'kuyst' => 'Europe/Samara', + 'kuyt' => 'Europe/Samara', + 'kwat' => 'Kwajalein', + 'kwat' => 'Pacific/Kwajalein', + 'lhst' => 'Australia/Lord_Howe', + 'lint' => 'Pacific/Kiritimati', + 'lkt' => 'Asia/Colombo', + 'lont' => 'Asia/Chongqing', + 'lrt' => 'Africa/Monrovia', + 'lst' => 'Europe/Riga', + 'madmt' => 'Atlantic/Madeira', + 'madst' => 'Atlantic/Madeira', + 'madt' => 'Atlantic/Madeira', + 'magst' => 'Asia/Magadan', + 'magt' => 'Asia/Magadan', + 'malst' => 'Asia/Singapore', + 'malt' => 'Asia/Singapore', + 'mart' => 'Pacific/Marquesas', + 'mawt' => 'Antarctica/Mawson', + 'mddt' => 'America/Cambridge_Bay', + 'mdst' => 'Europe/Moscow', + 'mdt' => 'America/Denver', + 'mht' => 'Pacific/Kwajalein', + 'mmt' => 'Europe/Moscow', + 'most' => 'Asia/Macao', + 'mot' => 'Asia/Macao', + 'mpt' => 'America/Denver', + 'msd' => 'Europe/Moscow', + 'msk' => 'Europe/Moscow', + 'mst' => 'America/Denver', + 'mut' => 'Indian/Mauritius', + 'mvt' => 'Indian/Maldives', + 'mwt' => 'America/Denver', + 'myt' => 'Asia/Kuala_Lumpur', + 'ncst' => 'Pacific/Noumea', + 'nct' => 'Pacific/Noumea', + 'nddt' => 'America/St_Johns', + 'ndt' => 'America/St_Johns', + 'negt' => 'America/Paramaribo', + 'nest' => 'Europe/Amsterdam', + 'net' => 'Europe/Amsterdam', + 'nft' => 'Pacific/Norfolk', + 'novst' => 'Asia/Novosibirsk', + 'novt' => 'Asia/Novosibirsk', + 'npt' => 'America/St_Johns', + 'nrt' => 'Pacific/Nauru', + 'nst' => 'America/St_Johns', + 'nut' => 'Pacific/Niue', + 'nwt' => 'America/St_Johns', + 'nzdt' => 'Pacific/Auckland', + 'nzmt' => 'Pacific/Auckland', + 'nzst' => 'Pacific/Auckland', + 'omsst' => 'Asia/Omsk', + 'omst' => 'Asia/Omsk', + 'orast' => 'Asia/Oral', + 'orat' => 'Asia/Oral', + 'pddt' => 'America/Inuvik', + 'pdt' => 'America/Los_Angeles', + 'pest' => 'America/Lima', + 'petst' => 'Asia/Kamchatka', + 'pett' => 'Asia/Kamchatka', + 'pet' => 'America/Lima', + 'phot' => 'Pacific/Enderbury', + 'phst' => 'Asia/Manila', + 'pht' => 'Asia/Manila', + 'pkst' => 'Asia/Karachi', + 'pkt' => 'Asia/Karachi', + 'pmdt' => 'America/Miquelon', + 'pmst' => 'America/Miquelon', + 'pmt' => 'America/Paramaribo', + 'ppt' => 'America/Los_Angeles', + 'pst' => 'America/Los_Angeles', + 'pwt' => 'America/Los_Angeles', + 'pyst' => 'America/Asuncion', + 'pyt' => 'America/Asuncion', + 'qyzst' => 'Asia/Qyzylorda', + 'qyzt' => 'Asia/Qyzylorda', + 'ret' => 'Indian/Reunion', + 'rmt' => 'Europe/Riga', + 'rott' => 'Antarctica/Rothera', + 'sakst' => 'Asia/Sakhalin', + 'sakt' => 'Asia/Sakhalin', + 'samst' => 'Asia/Samarkand', + 'samt' => 'Asia/Samarkand', + 'sast' => 'Africa/Johannesburg', + 'sbt' => 'Pacific/Guadalcanal', + 'sct' => 'Indian/Mahe', + 'sgt' => 'Asia/Singapore', + 'shest' => 'Asia/Aqtau', + 'shet' => 'Asia/Aqtau', + 'slst' => 'Africa/Freetown', + 'smt' => 'Asia/Saigon', + 'srt' => 'America/Paramaribo', + 'sst' => 'Pacific/Samoa', + 'svest' => 'Asia/Yekaterinburg', + 'svet' => 'Asia/Yekaterinburg', + 'syot' => 'Antarctica/Syowa', + 'taht' => 'Pacific/Tahiti', + 'tasst' => 'Asia/Samarkand', + 'tast' => 'Asia/Samarkand', + 'tbist' => 'Asia/Tbilisi', + 'tbit' => 'Asia/Tbilisi', + 'tft' => 'Indian/Kerguelen', + 'tjt' => 'Asia/Dushanbe', + 'tlt' => 'Asia/Dili', + 'tlt' => 'Asia/Dili', + 'tmt' => 'Asia/Tehran', + 'tost' => 'Pacific/Tongatapu', + 'tot' => 'Pacific/Tongatapu', + 'trst' => 'Europe/Istanbul', + 'trt' => 'Europe/Istanbul', + 'ulast' => 'Asia/Ulaanbaatar', + 'ulat' => 'Asia/Ulaanbaatar', + 'urast' => 'Asia/Oral', + 'urat' => 'Asia/Oral', + 'urut' => 'Asia/Urumqi', + 'uyhst' => 'America/Montevideo', + 'uyst' => 'America/Montevideo', + 'uyt' => 'America/Montevideo', + 'uzst' => 'Asia/Samarkand', + 'uzt' => 'Asia/Samarkand', + 'vet' => 'America/Caracas', + 'vlasst' => 'Asia/Vladivostok', + 'vlast' => 'Asia/Vladivostok', + 'vlat' => 'Asia/Vladivostok', + 'vost' => 'Antarctica/Vostok', + 'vust' => 'Pacific/Efate', + 'vut' => 'Pacific/Efate', + 'warst' => 'America/Mendoza', + 'wart' => 'America/Mendoza', + 'wast' => 'Africa/Windhoek', + 'wat' => 'Africa/Dakar', + 'wemt' => 'Europe/Lisbon', + 'west' => 'Europe/Paris', + 'wet' => 'Europe/Paris', + 'wgst' => 'America/Godthab', + 'wgt' => 'America/Godthab', + 'wit' => 'Asia/Jakarta', + 'wst' => 'Australia/Perth', + 'yakst' => 'Asia/Yakutsk', + 'yakt' => 'Asia/Yakutsk', + 'yddt' => 'America/Dawson', + 'ydt' => 'America/Dawson', + 'yekst' => 'Asia/Yekaterinburg', + 'yekt' => 'Asia/Yekaterinburg', + 'yerst' => 'Asia/Yerevan', + 'yert' => 'Asia/Yerevan', + 'ypt' => 'America/Dawson', + 'yst' => 'America/Anchorage', + 'ywt' => 'America/Dawson', + 'zzz' => 'Antarctica/Davis', + ); + $priorityB = array( + 'acst' => array(1, -14400, 'America/Porto_Acre'), + 'act' => array(0, -18000, 'America/Porto_Acre'), + 'addt' => array(1, -7200, 'America/Goose_Bay'), + 'adt' => array(1, -10800, 'America/Halifax'), + 'aft' => array(0, 16200, 'Asia/Kabul'), + 'ahdt' => array(1, -32400, 'America/Anchorage'), + 'ahst' => array(0, -36000, 'America/Anchorage'), + 'akdt' => array(1, -28800, 'America/Anchorage'), + 'akst' => array(0, -32400, 'America/Anchorage'), + 'aktst' => array(1, 21600, 'Asia/Aqtobe'), + 'aktt' => array(0, 14400, 'Asia/Aqtobe'), + 'aktt' => array(0, 18000, 'Asia/Aqtobe'), + 'aktt' => array(0, 21600, 'Asia/Aqtobe'), + 'almst' => array(1, 25200, 'Asia/Almaty'), + 'almt' => array(0, 18000, 'Asia/Almaty'), + 'almt' => array(0, 21600, 'Asia/Almaty'), + 'amst' => array(1, -10800, 'America/Manaus'), + 'amst' => array(1, 14400, 'Asia/Yerevan'), + 'amst' => array(1, 18000, 'Asia/Yerevan'), + 'amt' => array(0, -14400, 'America/Manaus'), + 'amt' => array(0, 10800, 'Asia/Yerevan'), + 'amt' => array(0, 1172, 'Europe/Amsterdam'), + 'amt' => array(0, 14400, 'Asia/Yerevan'), + 'anast' => array(1, 43200, 'Asia/Anadyr'), + 'anast' => array(1, 46800, 'Asia/Anadyr'), + 'anast' => array(1, 50400, 'Asia/Anadyr'), + 'anat' => array(0, 39600, 'Asia/Anadyr'), + 'anat' => array(0, 43200, 'Asia/Anadyr'), + 'anat' => array(0, 46800, 'Asia/Anadyr'), + 'ant' => array(0, -16200, 'America/Curacao'), + 'apt' => array(1, -10800, 'America/Halifax'), + 'aqtst' => array(1, 18000, 'Asia/Aqtau'), + 'aqtst' => array(1, 21600, 'Asia/Aqtau'), + 'aqtt' => array(0, 14400, 'Asia/Aqtau'), + 'aqtt' => array(0, 18000, 'Asia/Aqtau'), + 'arst' => array(1, -7200, 'America/Buenos_Aires'), + 'art' => array(0, -10800, 'America/Buenos_Aires'), + 'ashst' => array(1, 18000, 'Asia/Ashkhabad'), + 'ashst' => array(1, 21600, 'Asia/Ashkhabad'), + 'asht' => array(0, 14400, 'Asia/Ashkhabad'), + 'asht' => array(0, 18000, 'Asia/Ashkhabad'), + 'ast' => array(0, -14400, 'America/Curacao'), + 'ast' => array(0, 10800, 'Asia/Riyadh'), + 'awt' => array(1, -10800, 'America/Halifax'), + 'azomt' => array(1, 0, 'Atlantic/Azores'), + 'azost' => array(1, 0, 'Atlantic/Azores'), + 'azot' => array(0, -3600, 'Atlantic/Azores'), + 'azst' => array(1, 14400, 'Asia/Baku'), + 'azst' => array(1, 18000, 'Asia/Baku'), + 'azt' => array(0, 10800, 'Asia/Baku'), + 'azt' => array(0, 14400, 'Asia/Baku'), + 'bakst' => array(1, 14400, 'Asia/Baku'), + 'bakst' => array(1, 18000, 'Asia/Baku'), + 'bakt' => array(0, 10800, 'Asia/Baku'), + 'bakt' => array(0, 14400, 'Asia/Baku'), + 'bdst' => array(1, 7200, 'Europe/London'), + 'bdt' => array(1, -36000, 'America/Adak'), + 'bdt' => array(0, 21600, 'Asia/Dacca'), + 'beat' => array(0, 9000, 'Africa/Mogadishu'), + 'beaut' => array(0, 9885, 'Africa/Nairobi'), + 'bmt' => array(0, -14308, 'America/Barbados'), + 'bmt' => array(0, -3996, 'Africa/Banjul'), + 'bmt' => array(0, 6264, 'Europe/Tiraspol'), + 'bnt' => array(0, 27000, 'Asia/Brunei'), + 'bnt' => array(0, 28800, 'Asia/Brunei'), + 'bortst' => array(1, 30000, 'Asia/Kuching'), + 'bort' => array(0, 27000, 'Asia/Kuching'), + 'bort' => array(0, 28800, 'Asia/Kuching'), + 'bost' => array(1, -12756, 'America/La_Paz'), + 'bot' => array(0, -14400, 'America/La_Paz'), + 'brst' => array(1, -7200, 'America/Sao_Paulo'), + 'brt' => array(0, -10800, 'America/Sao_Paulo'), + 'bst' => array(0, -39600, 'America/Adak'), + 'bst' => array(0, 3600, 'Europe/London'), + 'bst' => array(1, 3600, 'Europe/London'), + 'btt' => array(0, 21600, 'Asia/Thimbu'), + 'burt' => array(0, 23400, 'Asia/Kolkata'), + 'cant' => array(0, -3600, 'Atlantic/Canary'), + 'cast' => array(0, 34200, 'Australia/Adelaide'), + 'cat' => array(0, -36000, 'America/Anchorage'), + 'cat' => array(0, 7200, 'Africa/Khartoum'), + 'cawt' => array(1, -32400, 'America/Anchorage'), + 'cddt' => array(1, -14400, 'America/Rankin_Inlet'), + 'cdt' => array(1, -14400, 'America/Havana'), + 'cdt' => array(1, -18000, 'America/Chicago'), + 'cdt' => array(1, 32400, 'Asia/Shanghai'), + 'cemt' => array(1, 10800, 'Europe/Berlin'), + 'cest' => array(1, 10800, 'Europe/Kaliningrad'), + 'cest' => array(1, 7200, 'Europe/Berlin'), + 'cet' => array(0, 3600, 'Europe/Berlin'), + 'cet' => array(0, 7200, 'Europe/Kaliningrad'), + 'cgst' => array(1, -3600, 'America/Scoresbysund'), + 'cgt' => array(0, -7200, 'America/Scoresbysund'), + 'chadt' => array(1, 49500, 'Pacific/Chatham'), + 'chast' => array(0, 45900, 'Pacific/Chatham'), + 'chat' => array(0, 30600, 'Asia/Harbin'), + 'chat' => array(0, 32400, 'Asia/Harbin'), + 'chdt' => array(1, -19800, 'America/Belize'), + 'chost' => array(1, 36000, 'Asia/Choibalsan'), + 'chot' => array(0, 32400, 'Asia/Choibalsan'), + 'cit' => array(0, 28800, 'Asia/Dili'), + 'cjt' => array(0, 32400, 'Asia/Sakhalin'), + 'ckhst' => array(1, -34200, 'Pacific/Rarotonga'), + 'ckt' => array(0, -36000, 'Pacific/Rarotonga'), + 'clst' => array(1, -10800, 'America/Santiago'), + 'clt' => array(0, -14400, 'America/Santiago'), + 'cost' => array(1, -14400, 'America/Bogota'), + 'cot' => array(0, -18000, 'America/Bogota'), + 'cpt' => array(1, -18000, 'America/Chicago'), + 'cst' => array(0, -18000, 'America/Havana'), + 'cst' => array(0, -21600, 'America/Chicago'), + 'cst' => array(0, 28800, 'Asia/Shanghai'), + 'cst' => array(0, 34200, 'Australia/Adelaide'), + 'cst' => array(1, 37800, 'Australia/Adelaide'), + 'cvst' => array(1, -3600, 'Atlantic/Cape_Verde'), + 'cvt' => array(0, -3600, 'Atlantic/Cape_Verde'), + 'cvt' => array(0, -7200, 'Atlantic/Cape_Verde'), + 'cwt' => array(1, -18000, 'America/Chicago'), + 'chst' => array(0, 36000, 'Pacific/Guam'), + 'dact' => array(0, 21600, 'Asia/Dacca'), + 'davt' => array(0, 25200, 'Antarctica/Davis'), + 'ddut' => array(0, 36000, 'Antarctica/DumontDUrville'), + 'dusst' => array(1, 21600, 'Asia/Dushanbe'), + 'dusst' => array(1, 25200, 'Asia/Dushanbe'), + 'dust' => array(0, 18000, 'Asia/Dushanbe'), + 'dust' => array(0, 21600, 'Asia/Dushanbe'), + 'easst' => array(1, -18000, 'Chile/EasterIsland'), + 'easst' => array(1, -21600, 'Chile/EasterIsland'), + 'east' => array(0, -21600, 'Chile/EasterIsland'), + 'east' => array(0, -25200, 'Chile/EasterIsland'), + 'east' => array(1, 14400, 'Indian/Antananarivo'), + 'eat' => array(0, 10800, 'Africa/Khartoum'), + 'ect' => array(0, -18000, 'America/Guayaquil'), + 'eddt' => array(1, -10800, 'America/Iqaluit'), + 'edt' => array(1, -14400, 'America/New_York'), + 'eest' => array(1, 10800, 'Europe/Helsinki'), + 'eet' => array(0, 7200, 'Europe/Helsinki'), + 'egst' => array(1, 0, 'America/Scoresbysund'), + 'egt' => array(0, -3600, 'America/Scoresbysund'), + 'ehdt' => array(1, -16200, 'America/Santo_Domingo'), + 'eit' => array(0, 32400, 'Asia/Jayapura'), + 'ept' => array(1, -14400, 'America/New_York'), + 'est' => array(0, -18000, 'America/New_York'), + 'est' => array(0, 36000, 'Australia/Melbourne'), + 'est' => array(1, 39600, 'Australia/Melbourne'), + 'ewt' => array(1, -14400, 'America/New_York'), + 'fjst' => array(1, 46800, 'Pacific/Fiji'), + 'fjt' => array(0, 43200, 'Pacific/Fiji'), + 'fkst' => array(1, -10800, 'Atlantic/Stanley'), + 'fkst' => array(1, -7200, 'Atlantic/Stanley'), + 'fkt' => array(0, -10800, 'Atlantic/Stanley'), + 'fkt' => array(0, -14400, 'Atlantic/Stanley'), + 'fnst' => array(1, -3600, 'America/Noronha'), + 'fnt' => array(0, -7200, 'America/Noronha'), + 'fort' => array(0, 14400, 'Asia/Aqtau'), + 'fort' => array(0, 18000, 'Asia/Aqtau'), + 'frust' => array(1, 21600, 'Asia/Bishkek'), + 'frust' => array(1, 25200, 'Asia/Bishkek'), + 'frut' => array(0, 18000, 'Asia/Bishkek'), + 'frut' => array(0, 21600, 'Asia/Bishkek'), + 'galt' => array(0, -21600, 'Pacific/Galapagos'), + 'gamt' => array(0, -32400, 'Pacific/Gambier'), + 'gbgt' => array(0, -13500, 'America/Guyana'), + 'gest' => array(1, 14400, 'Asia/Tbilisi'), + 'get' => array(0, 10800, 'Asia/Tbilisi'), + 'get' => array(0, 14400, 'Asia/Tbilisi'), + 'gft' => array(0, -10800, 'America/Cayenne'), + 'gft' => array(0, -14400, 'America/Cayenne'), + 'ghst' => array(1, 1200, 'Africa/Accra'), + 'gst' => array(0, 14400, 'Asia/Dubai'), + 'gyt' => array(0, -14400, 'America/Guyana'), + 'hadt' => array(1, -32400, 'America/Adak'), + 'hast' => array(0, -36000, 'America/Adak'), + 'hdt' => array(1, -34200, 'Pacific/Honolulu'), + 'hkst' => array(1, 32400, 'Asia/Hong_Kong'), + 'hkt' => array(0, 28800, 'Asia/Hong_Kong'), + 'hovst' => array(1, 28800, 'Asia/Hovd'), + 'hovt' => array(0, 21600, 'Asia/Hovd'), + 'hovt' => array(0, 25200, 'Asia/Hovd'), + 'hpt' => array(1, -34200, 'Pacific/Honolulu'), + 'hst' => array(0, -36000, 'Pacific/Honolulu'), + 'hwt' => array(1, -34200, 'Pacific/Honolulu'), + 'ict' => array(0, 25200, 'Asia/Bangkok'), + 'iddt' => array(1, 14400, 'Asia/Jerusalem'), + 'idt' => array(1, 10800, 'Asia/Jerusalem'), + 'ihst' => array(1, 21600, 'Asia/Colombo'), + 'iot' => array(0, 18000, 'Indian/Chagos'), + 'iot' => array(0, 21600, 'Indian/Chagos'), + 'irdt' => array(1, 16200, 'Asia/Tehran'), + 'irkst' => array(1, 28800, 'Asia/Irkutsk'), + 'irkst' => array(1, 32400, 'Asia/Irkutsk'), + 'irkt' => array(0, 25200, 'Asia/Irkutsk'), + 'irkt' => array(0, 28800, 'Asia/Irkutsk'), + 'irst' => array(0, 12600, 'Asia/Tehran'), + 'isst' => array(1, 0, 'Atlantic/Reykjavik'), + 'ist' => array(0, -3600, 'Atlantic/Reykjavik'), + 'ist' => array(0, 19800, 'Asia/Kolkata'), + 'ist' => array(1, 2079, 'Europe/Dublin'), + 'ist' => array(1, 23400, 'Asia/Kolkata'), + 'ist' => array(0, 3600, 'Europe/Dublin'), + 'ist' => array(1, 3600, 'Europe/Dublin'), + 'ist' => array(0, 7200, 'Asia/Jerusalem'), + 'javt' => array(0, 26400, 'Asia/Jakarta'), + 'jdt' => array(1, 36000, 'Asia/Tokyo'), + 'jst' => array(0, 32400, 'Asia/Tokyo'), + 'kart' => array(0, 18000, 'Asia/Karachi'), + 'kast' => array(0, 18000, 'Asia/Kashgar'), + 'kast' => array(0, 19800, 'Asia/Kashgar'), + 'kdt' => array(1, 36000, 'Asia/Seoul'), + 'kgst' => array(1, 21600, 'Asia/Bishkek'), + 'kgt' => array(0, 18000, 'Asia/Bishkek'), + 'kizst' => array(1, 21600, 'Asia/Qyzylorda'), + 'kizt' => array(0, 14400, 'Asia/Qyzylorda'), + 'kizt' => array(0, 18000, 'Asia/Qyzylorda'), + 'kizt' => array(0, 21600, 'Asia/Qyzylorda'), + 'kmt' => array(0, 5736, 'Europe/Vilnius'), + 'kost' => array(0, 39600, 'Pacific/Kosrae'), + 'kost' => array(0, 43200, 'Pacific/Kosrae'), + 'krast' => array(1, 25200, 'Asia/Krasnoyarsk'), + 'krast' => array(1, 28800, 'Asia/Krasnoyarsk'), + 'krat' => array(0, 21600, 'Asia/Krasnoyarsk'), + 'krat' => array(0, 25200, 'Asia/Krasnoyarsk'), + 'kst' => array(0, 32400, 'Asia/Seoul'), + 'kst' => array(0, 30600, 'Asia/Pyongyang'), + 'kst' => array(0, 32400, 'Asia/Pyongyang'), + 'kuyst' => array(1, 10800, 'Europe/Samara'), + 'kuyst' => array(1, 14400, 'Europe/Samara'), + 'kuyst' => array(1, 18000, 'Europe/Samara'), + 'kuyt' => array(0, 10800, 'Europe/Samara'), + 'kuyt' => array(0, 14400, 'Europe/Samara'), + 'kwat' => array(0, -43200, 'Kwajalein'), + 'kwat' => array(0, -43200, 'Pacific/Kwajalein'), + 'lhst' => array(0, 37800, 'Australia/Lord_Howe'), + 'lhst' => array(1, 39600, 'Australia/Lord_Howe'), + 'lhst' => array(1, 41400, 'Australia/Lord_Howe'), + 'lint' => array(0, -36000, 'Pacific/Kiritimati'), + 'lint' => array(0, 50400, 'Pacific/Kiritimati'), + 'lkt' => array(0, 21600, 'Asia/Colombo'), + 'lkt' => array(0, 23400, 'Asia/Colombo'), + 'lont' => array(0, 25200, 'Asia/Chongqing'), + 'lrt' => array(0, -2670, 'Africa/Monrovia'), + 'lst' => array(1, 9384, 'Europe/Riga'), + 'madmt' => array(1, 3600, 'Atlantic/Madeira'), + 'madst' => array(1, 0, 'Atlantic/Madeira'), + 'madt' => array(0, -3600, 'Atlantic/Madeira'), + 'magst' => array(1, 43200, 'Asia/Magadan'), + 'magt' => array(0, 36000, 'Asia/Magadan'), + 'malst' => array(1, 26400, 'Asia/Singapore'), + 'malt' => array(0, 25200, 'Asia/Singapore'), + 'malt' => array(0, 26400, 'Asia/Singapore'), + 'malt' => array(0, 27000, 'Asia/Singapore'), + 'mart' => array(0, -34200, 'Pacific/Marquesas'), + 'mawt' => array(0, 21600, 'Antarctica/Mawson'), + 'mddt' => array(1, -18000, 'America/Cambridge_Bay'), + 'mdst' => array(1, 16248, 'Europe/Moscow'), + 'mdt' => array(1, -21600, 'America/Denver'), + 'mht' => array(0, 43200, 'Pacific/Kwajalein'), + 'mmt' => array(0, 28656, 'Asia/Makassar'), + 'mmt' => array(0, 9048, 'Europe/Moscow'), + 'most' => array(1, 32400, 'Asia/Macao'), + 'mot' => array(0, 28800, 'Asia/Macao'), + 'mpt' => array(1, -21600, 'America/Denver'), + 'mpt' => array(0, 36000, 'Pacific/Saipan'), + 'msd' => array(1, 14400, 'Europe/Moscow'), + 'msk' => array(0, 10800, 'Europe/Moscow'), + 'mst' => array(0, -25200, 'America/Denver'), + 'mst' => array(1, 12648, 'Europe/Moscow'), + 'mut' => array(0, 14400, 'Indian/Mauritius'), + 'mvt' => array(0, 18000, 'Indian/Maldives'), + 'mwt' => array(1, -21600, 'America/Denver'), + 'myt' => array(0, 28800, 'Asia/Kuala_Lumpur'), + 'ncst' => array(1, 43200, 'Pacific/Noumea'), + 'nct' => array(0, 39600, 'Pacific/Noumea'), + 'nddt' => array(1, -5400, 'America/St_Johns'), + 'ndt' => array(1, -36000, 'Pacific/Midway'), + 'ndt' => array(1, -9000, 'America/St_Johns'), + 'ndt' => array(1, -9052, 'America/St_Johns'), + 'negt' => array(0, -12600, 'America/Paramaribo'), + 'nest' => array(1, 4800, 'Europe/Amsterdam'), + 'net' => array(0, 1200, 'Europe/Amsterdam'), + 'nft' => array(0, 41400, 'Pacific/Norfolk'), + 'novst' => array(1, 25200, 'Asia/Novosibirsk'), + 'novt' => array(0, 21600, 'Asia/Novosibirsk'), + 'npt' => array(1, -36000, 'America/Adak'), + 'npt' => array(1, -9000, 'America/St_Johns'), + 'npt' => array(0, 20700, 'Asia/Katmandu'), + 'nrt' => array(0, 41400, 'Pacific/Nauru'), + 'nrt' => array(0, 43200, 'Pacific/Nauru'), + 'nst' => array(0, -12600, 'America/St_Johns'), + 'nst' => array(0, -12652, 'America/St_Johns'), + 'nst' => array(0, -39600, 'America/Adak'), + 'nst' => array(1, 4772, 'Europe/Amsterdam'), + 'nut' => array(0, -39600, 'Pacific/Niue'), + 'nwt' => array(1, -9000, 'America/St_Johns'), + 'nzdt' => array(1, 46800, 'Pacific/Auckland'), + 'nzmt' => array(0, 41400, 'Pacific/Auckland'), + 'nzst' => array(0, 43200, 'Pacific/Auckland'), + 'omsst' => array(1, 21600, 'Asia/Omsk'), + 'omsst' => array(1, 25200, 'Asia/Omsk'), + 'omst' => array(0, 18000, 'Asia/Omsk'), + 'omst' => array(0, 21600, 'Asia/Omsk'), + 'orast' => array(1, 18000, 'Asia/Oral'), + 'orat' => array(0, 14400, 'Asia/Oral'), + 'orat' => array(0, 18000, 'Asia/Oral'), + 'pddt' => array(1, -21600, 'America/Inuvik'), + 'pdt' => array(1, -25200, 'America/Los_Angeles'), + 'pest' => array(1, -14400, 'America/Lima'), + 'petst' => array(1, 43200, 'Asia/Kamchatka'), + 'petst' => array(1, 46800, 'Asia/Kamchatka'), + 'pett' => array(0, 39600, 'Asia/Kamchatka'), + 'pett' => array(0, 43200, 'Asia/Kamchatka'), + 'pet' => array(0, -18000, 'America/Lima'), + 'phot' => array(0, -39600, 'Pacific/Enderbury'), + 'phot' => array(0, 46800, 'Pacific/Enderbury'), + 'phst' => array(1, 32400, 'Asia/Manila'), + 'pht' => array(0, 28800, 'Asia/Manila'), + 'pkst' => array(1, 21600, 'Asia/Karachi'), + 'pkt' => array(0, 18000, 'Asia/Karachi'), + 'pmdt' => array(1, -7200, 'America/Miquelon'), + 'pmst' => array(0, -10800, 'America/Miquelon'), + 'pmt' => array(0, -13236, 'America/Paramaribo'), + 'pmt' => array(0, -13252, 'America/Paramaribo'), + 'pmt' => array(0, 26240, 'Asia/Pontianak'), + 'pmt' => array(0, 36000, 'Antarctica/DumontDUrville'), + 'ppt' => array(1, -25200, 'America/Los_Angeles'), + 'pst' => array(0, -28800, 'America/Los_Angeles'), + 'pwt' => array(1, -25200, 'America/Los_Angeles'), + 'pyst' => array(1, -10800, 'America/Asuncion'), + 'pyt' => array(0, -10800, 'America/Asuncion'), + 'pyt' => array(0, -14400, 'America/Asuncion'), + 'qyzst' => array(1, 25200, 'Asia/Qyzylorda'), + 'qyzt' => array(0, 18000, 'Asia/Qyzylorda'), + 'qyzt' => array(0, 21600, 'Asia/Qyzylorda'), + 'ret' => array(0, 14400, 'Indian/Reunion'), + 'rmt' => array(0, 5784, 'Europe/Riga'), + 'rott' => array(0, -10800, 'Antarctica/Rothera'), + 'sakst' => array(1, 39600, 'Asia/Sakhalin'), + 'sakt' => array(0, 36000, 'Asia/Sakhalin'), + 'samst' => array(1, 18000, 'Europe/Samara'), + 'samst' => array(1, 21600, 'Asia/Samarkand'), + 'samt' => array(0, -41400, 'Pacific/Samoa'), + 'samt' => array(0, 14400, 'Asia/Samarkand'), + 'samt' => array(0, 18000, 'Asia/Samarkand'), + 'sast' => array(1, 10800, 'Africa/Johannesburg'), + 'sast' => array(0, 7200, 'Africa/Johannesburg'), + 'sbt' => array(0, 39600, 'Pacific/Guadalcanal'), + 'sct' => array(0, 14400, 'Indian/Mahe'), + 'sgt' => array(0, 28800, 'Asia/Singapore'), + 'shest' => array(1, 21600, 'Asia/Aqtau'), + 'shet' => array(0, 18000, 'Asia/Aqtau'), + 'shet' => array(0, 21600, 'Asia/Aqtau'), + 'slst' => array(1, -1200, 'Africa/Freetown'), + 'slst' => array(1, 3600, 'Africa/Freetown'), + 'smt' => array(0, 25580, 'Asia/Saigon'), + 'srt' => array(0, -10800, 'America/Paramaribo'), + 'sst' => array(0, -39600, 'Pacific/Samoa'), + 'svest' => array(1, 18000, 'Asia/Yekaterinburg'), + 'svest' => array(1, 21600, 'Asia/Yekaterinburg'), + 'svet' => array(0, 14400, 'Asia/Yekaterinburg'), + 'svet' => array(0, 18000, 'Asia/Yekaterinburg'), + 'syot' => array(0, 10800, 'Antarctica/Syowa'), + 'taht' => array(0, -36000, 'Pacific/Tahiti'), + 'tasst' => array(1, 21600, 'Asia/Samarkand'), + 'tasst' => array(1, 25200, 'Asia/Samarkand'), + 'tast' => array(0, 18000, 'Asia/Tashkent'), + 'tast' => array(0, 21600, 'Asia/Samarkand'), + 'tbist' => array(1, 14400, 'Asia/Tbilisi'), + 'tbist' => array(1, 18000, 'Asia/Tbilisi'), + 'tbit' => array(0, 10800, 'Asia/Tbilisi'), + 'tbit' => array(0, 14400, 'Asia/Tbilisi'), + 'tft' => array(0, 18000, 'Indian/Kerguelen'), + 'tjt' => array(0, 18000, 'Asia/Dushanbe'), + 'tlt' => array(0, 28800, 'Asia/Dili'), + 'tlt' => array(0, 32400, 'Asia/Dili'), + 'tmt' => array(0, 12344, 'Asia/Tehran'), + 'tmt' => array(0, 14400, 'Asia/Ashgabat'), + 'tmt' => array(0, 18000, 'Asia/Ashgabat'), + 'tmt' => array(0, 5940, 'Europe/Tallinn'), + 'tost' => array(1, 50400, 'Pacific/Tongatapu'), + 'tot' => array(0, 46800, 'Pacific/Tongatapu'), + 'trst' => array(1, 14400, 'Europe/Istanbul'), + 'trt' => array(0, 10800, 'Europe/Istanbul'), + 'ulast' => array(1, 32400, 'Asia/Ulaanbaatar'), + 'ulat' => array(0, 25200, 'Asia/Ulaanbaatar'), + 'ulat' => array(0, 28800, 'Asia/Ulaanbaatar'), + 'urast' => array(1, 18000, 'Asia/Oral'), + 'urast' => array(1, 21600, 'Asia/Oral'), + 'urat' => array(0, 14400, 'Asia/Oral'), + 'urat' => array(0, 18000, 'Asia/Oral'), + 'urat' => array(0, 21600, 'Asia/Oral'), + 'urut' => array(0, 21600, 'Asia/Urumqi'), + 'uyhst' => array(1, -10800, 'America/Montevideo'), + 'uyhst' => array(1, -9000, 'America/Montevideo'), + 'uyst' => array(1, -7200, 'America/Montevideo'), + 'uyt' => array(0, -10800, 'America/Montevideo'), + 'uzst' => array(1, 21600, 'Asia/Samarkand'), + 'uzt' => array(0, 18000, 'Asia/Samarkand'), + 'vet' => array(0, -14400, 'America/Caracas'), + 'vet' => array(0, -16200, 'America/Caracas'), + 'vlasst' => array(1, 36000, 'Asia/Vladivostok'), + 'vlast' => array(1, 39600, 'Asia/Vladivostok'), + 'vlat' => array(0, 36000, 'Asia/Vladivostok'), + 'vost' => array(0, 21600, 'Antarctica/Vostok'), + 'vust' => array(1, 43200, 'Pacific/Efate'), + 'vut' => array(0, 39600, 'Pacific/Efate'), + 'warst' => array(1, -10800, 'America/Mendoza'), + 'wart' => array(0, -14400, 'America/Mendoza'), + 'wast' => array(1, 7200, 'Africa/Windhoek'), + 'wat' => array(0, -3600, 'Africa/Dakar'), + 'wat' => array(0, 0, 'Africa/Freetown'), + 'wat' => array(0, 3600, 'Africa/Brazzaville'), + 'wemt' => array(1, 7200, 'Europe/Lisbon'), + 'west' => array(1, 3600, 'Europe/Paris'), + 'west' => array(1, 7200, 'Europe/Luxembourg'), + 'wet' => array(0, 0, 'Europe/Paris'), + 'wet' => array(0, 3600, 'Europe/Luxembourg'), + 'wgst' => array(1, -7200, 'America/Godthab'), + 'wgt' => array(0, -10800, 'America/Godthab'), + 'wit' => array(0, 25200, 'Asia/Jakarta'), + 'wit' => array(0, 27000, 'Asia/Jakarta'), + 'wit' => array(0, 28800, 'Asia/Jakarta'), + 'wst' => array(0, -39600, 'Pacific/Apia'), + 'wst' => array(0, 28800, 'Australia/Perth'), + 'wst' => array(1, 32400, 'Australia/Perth'), + 'yakst' => array(1, 32400, 'Asia/Yakutsk'), + 'yakst' => array(1, 36000, 'Asia/Yakutsk'), + 'yakt' => array(0, 28800, 'Asia/Yakutsk'), + 'yakt' => array(0, 32400, 'Asia/Yakutsk'), + 'yddt' => array(1, -25200, 'America/Dawson'), + 'ydt' => array(1, -28800, 'America/Dawson'), + 'yekst' => array(1, 21600, 'Asia/Yekaterinburg'), + 'yekt' => array(0, 18000, 'Asia/Yekaterinburg'), + 'yerst' => array(1, 14400, 'Asia/Yerevan'), + 'yerst' => array(1, 18000, 'Asia/Yerevan'), + 'yert' => array(0, 10800, 'Asia/Yerevan'), + 'yert' => array(0, 14400, 'Asia/Yerevan'), + 'ypt' => array(1, -28800, 'America/Dawson'), + 'yst' => array(0, -32400, 'America/Anchorage'), + 'ywt' => array(1, -28800, 'America/Dawson'), + 'zzz' => array(0, 0, 'Antarctica/Davis'), + ); + + $mapping = array(); + + foreach ($zones as $zone) { + fprintf(STDERR, "Checking $zone: "); + if (!(preg_match( '@^([A-Z][a-z]+([_/-][A-Za-z]+)+)$@', $zone) || (preg_match( '@^[A-Z]{1,6}$@', $zone)))) { + fprintf(STDERR, "skipped.\n"); + continue; + } + $tz = @timezone_open($zone); + if (!$tz) { + fprintf(STDERR, "skipped.\n"); + continue; + } + $transistions = timezone_transitions_get($tz); + if ($transistions === FALSE) { + $transistions = array(); + } + foreach ($transistions as $trans) { + if (preg_match( '/^[+-][0-9]{2}$/', $trans['abbr'] ) ) { + continue; + } + if (preg_match( '/^[+-][0-9]{4}$/', $trans['abbr'] ) ) { + continue; + } + if ($trans['abbr'] == 'LMT') { + continue; + } + $key = $trans['abbr'] . '|' . $trans['offset']. '|' . ($trans['isdst'] ? '1' : '0'); + + if (isset($mapping[$key])) { + if (!in_array($zone, $mapping[$key])) { + $mapping[$key][] = $zone; + } + } else { + $mapping[$key] = array($zone); + } + } + fprintf(STDERR, "ok.\n"); + } + + //Militairy zones + $ls = array_merge(range('a', 'i'), range('k', 'm')); + $h = 1; + foreach ($ls as $l) { + $offset = $h * 3600; + ++$h; + $mapping["$l|$offset|0"] = array(null); + } + $ls = range('n', 'y'); + $h = 1; + foreach ($ls as $l) { + $offset = -$h * 3600; + ++$h; + $mapping["$l|$offset|0"] = array(null); + } + $mapping["z|0|0"] = array(null); + + //Special BC overrides + $mapping['cast|34200|0'] = array('Australia/Adelaide'); + + //Add UTC + $mapping['utc|0|0'] = array('UTC'); + + ksort($mapping); +//var_dump($mapping); + $mapping2 = array(); + foreach ($mapping as $key => $test) { + list($abbr, $offset, $isdst) = explode('|', $key); + $abbr = strtolower($abbr); + if (isset($priorityB[$abbr]) && $offset == $priorityB[$abbr][1] && $isdst == $priorityB[$abbr][0]) { + $fullelem = array($isdst, $offset, $priorityB[$abbr][2]); + $keys = array_flip($test); + unset($keys[$priorityB[$abbr][2]]); + $test = array_flip($keys); + if (isset($priorityA[$abbr]) && $priorityA[$abbr] == $priorityB[$abbr][2]) { + $mapping2[$abbr][0][] = $fullelem; + } else { + $mapping2[$abbr][1][] = $fullelem; + } +// var_dump($abbr, $priorityB[$abbr], $mapping2[$abbr]); + } + foreach ($test as $id) { + $fullelem = array($isdst, $offset, $id); + if (isset($priorityA[$abbr]) && $priorityA[$abbr] == $id) { + $mapping2[$abbr][1][] = $fullelem; + } else { + $mapping2[$abbr][2][] = $fullelem; + } + } + } +//var_dump($mapping2); + + foreach ($mapping2 as $abbr => $abbr_parts) { + ksort($abbr_parts); + foreach ($abbr_parts as $abbr_elements) { + foreach ($abbr_elements as $abbr_elem) { + list($isdst, $offset, $elem) = $abbr_elem; + if ($elem === NULL) { + echo "\t{ ", sprintf('%-9s', '"'. $abbr. '", '), $isdst, ', ', sprintf("%7s", $offset . ','), sprintf("%-32s", " NULL"), " },\n"; + } else { + echo "\t{ ", sprintf('%-9s', '"'. $abbr. '", '), $isdst, ', ', sprintf("%7s", $offset . ','), sprintf("%-32s", " \"$elem\""), " },\n"; + } + } + } + } +?> |