与 PHP 相比,Moment JS 有 100 个左右的时区,bug?如何让它们进入 PHP
Moment JS has 100 or so more timezones compared to PHP, bug? How do I get them in PHP
我正在使用 Moment JS,最近刚刚在我的 Nuxt JS 项目中输出了使用 this.$moment.tz.names()
列出的时区。但是,我的服务器在 PHP 中 timezone_identifiers_list
函数内部的时区似乎只有 100 个左右,而且奇怪的是,PHP 似乎缺少一些重要的时区, 或不在 Moment 中,例如:
US/Central
为什么 PHP 不包含 Moment 中缺失的这些时区?
我将附上似乎从 Moment 输出但不在 PHP 中的截图,想知道如何将这些时区放入 PHP 列表?
我已经将 PHP 中的时区列表输出到一个字符串中,因为我将不得不比较现在的时间,如果我的时区猜测逻辑选择了一个不正确的时间,我将设置一个默认值'它不存在,因为我有一个 Laravel 时区验证规则。
const prodTimezones = JSON.parse("[\"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\/Fort_Nelson\",\"America\/Fortaleza\",\"America\/Glace_Bay\",\"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\/Nuuk\",\"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\/Punta_Arenas\",\"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\/Atyrau\",\"Asia\/Baghdad\",\"Asia\/Bahrain\",\"Asia\/Baku\",\"Asia\/Bangkok\",\"Asia\/Barnaul\",\"Asia\/Beirut\",\"Asia\/Bishkek\",\"Asia\/Brunei\",\"Asia\/Chita\",\"Asia\/Choibalsan\",\"Asia\/Colombo\",\"Asia\/Damascus\",\"Asia\/Dhaka\",\"Asia\/Dili\",\"Asia\/Dubai\",\"Asia\/Dushanbe\",\"Asia\/Famagusta\",\"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\/Kolkata\",\"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\/Qostanay\",\"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\/Tomsk\",\"Asia\/Ulaanbaatar\",\"Asia\/Urumqi\",\"Asia\/Ust-Nera\",\"Asia\/Vientiane\",\"Asia\/Vladivostok\",\"Asia\/Yakutsk\",\"Asia\/Yangon\",\"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\/Darwin\",\"Australia\/Eucla\",\"Australia\/Hobart\",\"Australia\/Lindeman\",\"Australia\/Lord_Howe\",\"Australia\/Melbourne\",\"Australia\/Perth\",\"Australia\/Sydney\",\"Europe\/Amsterdam\",\"Europe\/Andorra\",\"Europe\/Astrakhan\",\"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\/Kirov\",\"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\/Saratov\",\"Europe\/Simferopol\",\"Europe\/Skopje\",\"Europe\/Sofia\",\"Europe\/Stockholm\",\"Europe\/Tallinn\",\"Europe\/Tirane\",\"Europe\/Ulyanovsk\",\"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\/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\",\"UTC\"]")
const localTimezones = this.$moment.tz.names()
for (const [index, timezone] of localTimezones.entries()) {
if (!prodTimezones.includes(timezone)) {
console.log(timezone)
}
}
以及 PHP 中附加的缺失时区?还有很多,但这里有一些
有个东西叫tz, zoneinfo, or the Olson database. It's maintained by the Internet Assigned Numbers Authority
它以 Continent/City
或有时 Continent/State/City
格式命名区域,如 Asia/Kolkata
或 America/Indiana/Knox
。每个命名区域都包含与 UTC 时间和本地时间相互转换的规则,包括夏令时的正确处理。
该数据库包含城市(及周边地区)时区和夏令时转换的时间政治历史。因此,如果美国印第安纳州诺克斯政府明年更改夏令时规则,他们的条目将在数据库的维护版本中更新。
如果西班牙决定放弃其佛朗哥时代使用与 'Europe/Berlin' 相同时区的决定,并移至与 'Europe/Lisbon' 相同的时区,则 [=29= 的更新时区信息数据] 将在其生效日期反映该更改。 Linux 和 MacOS 等基于 UNIX 的操作系统的更新包括最新的区域信息数据。
php 使用区域信息。 MySql 也是如此。 moment.js 为其添加同义词。如果诺克斯的某人将他们的时区设置为时刻的同义词 'US/Central' 并且市议会更改了规则,他们将不会遵循更改。
因此,请考虑在您的应用程序中使用 php 的列表,因为它已被证明是面向未来的。
根据 PHP the docs,timezone_identifiers_list
的完整形式是:
timezone_identifiers_list ( int $timezoneGroup = DateTimeZone::ALL , string|null $countryCode = null ) : array
默认情况下,$timezoneGroup
参数为DateTimeZone::ALL
, which is designed to return only the Zone
entries from the IANA time zone database。
如果你真的想要return所有有效的时区标识符,那么你还需要考虑IANA时区数据库中的Link
条目,这是为了向后兼容的目的而建立的。在 PHP 中,您可以传递 DateTimeZone::ALL_WITH_BC
常量来获取 Zone
和 Link
标识符的整个列表。
// get all time zone identifiers, including backwards compatible.
$timezone_identifiers = timezone_identifiers_list(DateTimeZone::ALL_WITH_BC);
或者使用面向对象的风格DateTimeZone::listIdentifiers
:
// get all time zone identifiers, including backwards compatible.
$timezone_identifiers = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC);
该列表应该与您从 Moment-Timezone 获得的列表基本一致。
我还要指出,如果可能的话,您应该考虑使用与 Moment and/or Moment-Timezone 不同的库。请阅读 Moment's Project Status Page 了解更多详情。谢谢。
我正在使用 Moment JS,最近刚刚在我的 Nuxt JS 项目中输出了使用 this.$moment.tz.names()
列出的时区。但是,我的服务器在 PHP 中 timezone_identifiers_list
函数内部的时区似乎只有 100 个左右,而且奇怪的是,PHP 似乎缺少一些重要的时区, 或不在 Moment 中,例如:
US/Central
为什么 PHP 不包含 Moment 中缺失的这些时区?
我将附上似乎从 Moment 输出但不在 PHP 中的截图,想知道如何将这些时区放入 PHP 列表?
我已经将 PHP 中的时区列表输出到一个字符串中,因为我将不得不比较现在的时间,如果我的时区猜测逻辑选择了一个不正确的时间,我将设置一个默认值'它不存在,因为我有一个 Laravel 时区验证规则。
const prodTimezones = JSON.parse("[\"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\/Fort_Nelson\",\"America\/Fortaleza\",\"America\/Glace_Bay\",\"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\/Nuuk\",\"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\/Punta_Arenas\",\"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\/Atyrau\",\"Asia\/Baghdad\",\"Asia\/Bahrain\",\"Asia\/Baku\",\"Asia\/Bangkok\",\"Asia\/Barnaul\",\"Asia\/Beirut\",\"Asia\/Bishkek\",\"Asia\/Brunei\",\"Asia\/Chita\",\"Asia\/Choibalsan\",\"Asia\/Colombo\",\"Asia\/Damascus\",\"Asia\/Dhaka\",\"Asia\/Dili\",\"Asia\/Dubai\",\"Asia\/Dushanbe\",\"Asia\/Famagusta\",\"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\/Kolkata\",\"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\/Qostanay\",\"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\/Tomsk\",\"Asia\/Ulaanbaatar\",\"Asia\/Urumqi\",\"Asia\/Ust-Nera\",\"Asia\/Vientiane\",\"Asia\/Vladivostok\",\"Asia\/Yakutsk\",\"Asia\/Yangon\",\"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\/Darwin\",\"Australia\/Eucla\",\"Australia\/Hobart\",\"Australia\/Lindeman\",\"Australia\/Lord_Howe\",\"Australia\/Melbourne\",\"Australia\/Perth\",\"Australia\/Sydney\",\"Europe\/Amsterdam\",\"Europe\/Andorra\",\"Europe\/Astrakhan\",\"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\/Kirov\",\"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\/Saratov\",\"Europe\/Simferopol\",\"Europe\/Skopje\",\"Europe\/Sofia\",\"Europe\/Stockholm\",\"Europe\/Tallinn\",\"Europe\/Tirane\",\"Europe\/Ulyanovsk\",\"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\/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\",\"UTC\"]")
const localTimezones = this.$moment.tz.names()
for (const [index, timezone] of localTimezones.entries()) {
if (!prodTimezones.includes(timezone)) {
console.log(timezone)
}
}
以及 PHP 中附加的缺失时区?还有很多,但这里有一些
有个东西叫tz, zoneinfo, or the Olson database. It's maintained by the Internet Assigned Numbers Authority
它以 Continent/City
或有时 Continent/State/City
格式命名区域,如 Asia/Kolkata
或 America/Indiana/Knox
。每个命名区域都包含与 UTC 时间和本地时间相互转换的规则,包括夏令时的正确处理。
该数据库包含城市(及周边地区)时区和夏令时转换的时间政治历史。因此,如果美国印第安纳州诺克斯政府明年更改夏令时规则,他们的条目将在数据库的维护版本中更新。
如果西班牙决定放弃其佛朗哥时代使用与 'Europe/Berlin' 相同时区的决定,并移至与 'Europe/Lisbon' 相同的时区,则 [=29= 的更新时区信息数据] 将在其生效日期反映该更改。 Linux 和 MacOS 等基于 UNIX 的操作系统的更新包括最新的区域信息数据。
php 使用区域信息。 MySql 也是如此。 moment.js 为其添加同义词。如果诺克斯的某人将他们的时区设置为时刻的同义词 'US/Central' 并且市议会更改了规则,他们将不会遵循更改。
因此,请考虑在您的应用程序中使用 php 的列表,因为它已被证明是面向未来的。
根据 PHP the docs,timezone_identifiers_list
的完整形式是:
timezone_identifiers_list ( int $timezoneGroup = DateTimeZone::ALL , string|null $countryCode = null ) : array
默认情况下,$timezoneGroup
参数为DateTimeZone::ALL
, which is designed to return only the Zone
entries from the IANA time zone database。
如果你真的想要return所有有效的时区标识符,那么你还需要考虑IANA时区数据库中的Link
条目,这是为了向后兼容的目的而建立的。在 PHP 中,您可以传递 DateTimeZone::ALL_WITH_BC
常量来获取 Zone
和 Link
标识符的整个列表。
// get all time zone identifiers, including backwards compatible.
$timezone_identifiers = timezone_identifiers_list(DateTimeZone::ALL_WITH_BC);
或者使用面向对象的风格DateTimeZone::listIdentifiers
:
// get all time zone identifiers, including backwards compatible.
$timezone_identifiers = DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC);
该列表应该与您从 Moment-Timezone 获得的列表基本一致。
我还要指出,如果可能的话,您应该考虑使用与 Moment and/or Moment-Timezone 不同的库。请阅读 Moment's Project Status Page 了解更多详情。谢谢。