Last active
August 29, 2015 14:21
-
-
Save timrwood/988c9480a78e37b93970 to your computer and use it in GitHub Desktop.
Alternate moment timezone current timezone filters.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
} | |
function matchesAtIndex (zone, i) { | |
var aDay = 50 * 24 * 60 * 60 * 1000; | |
if (i < zone.offsets.length - 1 && new Date(zone.untils[i] + aDay).getTimezoneOffset() !== zone.offsets[i + 1]) { | |
// console.log(zone.name, new Date(zone.untils[i] + aDay).getTimezoneOffset(), zone.offsets[i + 1], '+1'); | |
// console.log(zone.name, zone.untils[i + 1], aDay, zone.untils[i + 1] + aDay); | |
return false; | |
} | |
// console.log(zone.name, new Date(zone.untils[i] - aDay).getTimezoneOffset(), zone.offsets[i]); | |
return new Date(zone.untils[i] - aDay).getTimezoneOffset() === zone.offsets[i]; | |
} | |
function matchesCurrentYearOffsets (name) { | |
var zone = getZone(name); | |
return (zone.offset(jan) === jan.getTimezoneOffset()) && (zone.offset(jun) === jun.getTimezoneOffset()); | |
var i = zone._index(now); | |
// console.log(zone.name, 'i - 1'); | |
if (i > 0 && !matchesAtIndex(zone, i - 1)) { | |
return false; | |
} | |
// console.log(zone.name, 'i'); | |
return matchesAtIndex(zone, i); | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+00:00/+00:00 : Africa/Abidjan Africa/Accra Africa/Bamako Africa/Banjul Africa/Bissau Africa/Casablanca Africa/Conakry Africa/Dakar Africa/El_Aaiun Africa/Freetown Africa/Lome Africa/Monrovia Africa/Nouakchott Africa/Ouagadougou Africa/Sao_Tome Africa/Timbuktu America/Danmarkshavn Atlantic/Reykjavik Atlantic/St_Helena Etc/GMT Etc/GMT+0 Etc/GMT-0 Etc/GMT0 Etc/Greenwich Etc/UCT Etc/UTC Etc/Universal Etc/Zulu GMT GMT+0 GMT-0 GMT0 Greenwich Iceland UCT UTC Universal Zulu | |
+00:00/+01:00 : Atlantic/Canary Atlantic/Faeroe Atlantic/Faroe Atlantic/Madeira Eire Europe/Belfast Europe/Dublin Europe/Guernsey Europe/Isle_of_Man Europe/Jersey Europe/Lisbon Europe/London GB GB-Eire Portugal WET | |
+00:00/+02:00 : Antarctica/Troll | |
+01:00/+01:00 : Africa/Algiers Africa/Bangui Africa/Brazzaville Africa/Douala Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Luanda Africa/Malabo Africa/Ndjamena Africa/Niamey Africa/Porto-Novo Africa/Tunis Etc/GMT-1 | |
+01:00/+02:00 : Africa/Ceuta Arctic/Longyearbyen Atlantic/Jan_Mayen CET Europe/Amsterdam Europe/Andorra Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Budapest Europe/Busingen Europe/Copenhagen Europe/Gibraltar Europe/Ljubljana Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Monaco Europe/Oslo Europe/Paris Europe/Podgorica Europe/Prague Europe/Rome Europe/San_Marino Europe/Sarajevo Europe/Skopje Europe/Stockholm Europe/Tirane Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Warsaw Europe/Zagreb Europe/Zurich MET Poland | |
+02:00/+01:00 : Africa/Windhoek | |
+02:00/+02:00 : Africa/Blantyre Africa/Bujumbura Africa/Cairo Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Kigali Africa/Lubumbashi Africa/Lusaka Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Tripoli Egypt Etc/GMT-2 Europe/Kaliningrad Libya | |
+02:00/+03:00 : Asia/Amman Asia/Beirut Asia/Damascus Asia/Gaza Asia/Hebron Asia/Istanbul Asia/Jerusalem Asia/Nicosia Asia/Tel_Aviv EET Europe/Athens Europe/Bucharest Europe/Chisinau Europe/Helsinki Europe/Istanbul Europe/Kiev Europe/Mariehamn Europe/Nicosia Europe/Riga Europe/Sofia Europe/Tallinn Europe/Tiraspol Europe/Uzhgorod Europe/Vilnius Europe/Zaporozhye Israel Turkey | |
+03:00/+03:00 : Africa/Addis_Ababa Africa/Asmara Africa/Asmera Africa/Dar_es_Salaam Africa/Djibouti Africa/Juba Africa/Kampala Africa/Khartoum Africa/Mogadishu Africa/Nairobi Antarctica/Syowa Asia/Aden Asia/Baghdad Asia/Bahrain Asia/Kuwait Asia/Qatar Asia/Riyadh Etc/GMT-3 Europe/Minsk Europe/Moscow Europe/Simferopol Europe/Volgograd Indian/Antananarivo Indian/Comoro Indian/Mayotte W-SU | |
+03:30/+04:30 : Asia/Tehran Iran | |
+04:00/+04:00 : Asia/Dubai Asia/Muscat Asia/Tbilisi Asia/Yerevan Etc/GMT-4 Europe/Samara Indian/Mahe Indian/Mauritius Indian/Reunion | |
+04:00/+05:00 : Asia/Baku | |
+04:30/+04:30 : Asia/Kabul | |
+05:00/+05:00 : Antarctica/Mawson Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Ashkhabad Asia/Dushanbe Asia/Karachi Asia/Oral Asia/Samarkand Asia/Tashkent Asia/Yekaterinburg Etc/GMT-5 Indian/Kerguelen Indian/Maldives | |
+05:30/+05:30 : Asia/Calcutta Asia/Colombo Asia/Kolkata | |
+05:45/+05:45 : Asia/Kathmandu Asia/Katmandu | |
+06:00/+06:00 : Antarctica/Vostok Asia/Almaty Asia/Bishkek Asia/Dacca Asia/Dhaka Asia/Kashgar Asia/Novosibirsk Asia/Omsk Asia/Qyzylorda Asia/Thimbu Asia/Thimphu Asia/Urumqi Etc/GMT-6 Indian/Chagos | |
+06:30/+06:30 : Asia/Rangoon Indian/Cocos | |
+07:00/+07:00 : Antarctica/Davis Asia/Bangkok Asia/Ho_Chi_Minh Asia/Hovd Asia/Jakarta Asia/Krasnoyarsk Asia/Novokuznetsk Asia/Phnom_Penh Asia/Pontianak Asia/Saigon Asia/Vientiane Etc/GMT-7 Indian/Christmas | |
+08:00/+08:00 : Antarctica/Casey Asia/Brunei Asia/Chita Asia/Choibalsan Asia/Chongqing Asia/Chungking Asia/Harbin Asia/Hong_Kong Asia/Irkutsk Asia/Kuala_Lumpur Asia/Kuching Asia/Macao Asia/Macau Asia/Makassar Asia/Manila Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Ujung_Pandang Asia/Ulaanbaatar Asia/Ulan_Bator Australia/Perth Australia/West Etc/GMT-8 Hongkong PRC ROC Singapore | |
+08:45/+08:45 : Australia/Eucla | |
+09:00/+09:00 : Asia/Dili Asia/Jayapura Asia/Khandyga Asia/Pyongyang Asia/Seoul Asia/Tokyo Asia/Yakutsk Etc/GMT-9 Japan Pacific/Palau ROK | |
+09:30/+09:30 : Australia/Darwin Australia/North | |
+10:00/+10:00 : Antarctica/DumontDUrville Asia/Magadan Asia/Sakhalin Asia/Ust-Nera Asia/Vladivostok Australia/Brisbane Australia/Lindeman Australia/Queensland Etc/GMT-10 Pacific/Chuuk Pacific/Guam Pacific/Port_Moresby Pacific/Saipan Pacific/Truk Pacific/Yap | |
+10:30/+09:30 : Australia/Adelaide Australia/Broken_Hill Australia/South Australia/Yancowinna | |
+11:00/+10:00 : Australia/ACT Australia/Canberra Australia/Currie Australia/Hobart Australia/Melbourne Australia/NSW Australia/Sydney Australia/Tasmania Australia/Victoria | |
+11:00/+10:30 : Australia/LHI Australia/Lord_Howe | |
+11:00/+11:00 : Antarctica/Macquarie Asia/Srednekolymsk Etc/GMT-11 Pacific/Bougainville Pacific/Efate Pacific/Guadalcanal Pacific/Kosrae Pacific/Noumea Pacific/Pohnpei Pacific/Ponape | |
+11:30/+11:30 : Pacific/Norfolk | |
+12:00/+12:00 : Asia/Anadyr Asia/Kamchatka Etc/GMT-12 Kwajalein Pacific/Funafuti Pacific/Kwajalein Pacific/Majuro Pacific/Nauru Pacific/Tarawa Pacific/Wake Pacific/Wallis | |
+13:00/+12:00 : Antarctica/McMurdo Antarctica/South_Pole NZ Pacific/Auckland Pacific/Fiji | |
+13:00/+13:00 : Etc/GMT-13 Pacific/Enderbury Pacific/Fakaofo Pacific/Tongatapu | |
+13:45/+12:45 : NZ-CHAT Pacific/Chatham | |
+14:00/+13:00 : Pacific/Apia | |
+14:00/+14:00 : Etc/GMT-14 Pacific/Kiritimati | |
-01:00/+00:00 : America/Scoresbysund Atlantic/Azores | |
-01:00/-01:00 : Atlantic/Cape_Verde Etc/GMT+1 | |
-02:00/-02:00 : America/Noronha Atlantic/South_Georgia Brazil/DeNoronha Etc/GMT+2 | |
-02:00/-03:00 : America/Montevideo America/Sao_Paulo Brazil/East | |
-03:00/-02:00 : America/Godthab America/Miquelon | |
-03:00/-03:00 : America/Araguaina America/Argentina/Buenos_Aires America/Argentina/Catamarca America/Argentina/ComodRivadavia 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/Bahia America/Belem America/Buenos_Aires America/Catamarca America/Cayenne America/Cordoba America/Fortaleza America/Jujuy America/Maceio America/Mendoza America/Paramaribo America/Recife America/Rosario America/Santarem Antarctica/Rothera Atlantic/Stanley Etc/GMT+3 | |
-03:00/-04:00 : America/Asuncion America/Campo_Grande America/Cuiaba America/Santiago Antarctica/Palmer Chile/Continental | |
-03:30/-02:30 : America/St_Johns Canada/Newfoundland | |
-04:00/-03:00 : America/Glace_Bay America/Goose_Bay America/Halifax America/Moncton America/Thule Atlantic/Bermuda Canada/Atlantic | |
-04:00/-04:00 : America/Anguilla America/Antigua America/Aruba America/Barbados America/Blanc-Sablon America/Boa_Vista America/Curacao America/Dominica America/Grenada America/Guadeloupe America/Guyana America/Kralendijk America/La_Paz America/Lower_Princes America/Manaus America/Marigot America/Martinique America/Montserrat America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Santo_Domingo America/St_Barthelemy America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Tortola America/Virgin Brazil/West Etc/GMT+4 | |
-04:30/-04:30 : America/Caracas | |
-05:00/-04:00 : America/Detroit America/Fort_Wayne America/Grand_Turk America/Havana America/Indiana/Indianapolis America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Indianapolis America/Iqaluit America/Kentucky/Louisville America/Kentucky/Monticello America/Louisville America/Montreal America/Nassau America/New_York America/Nipigon America/Pangnirtung America/Port-au-Prince America/Thunder_Bay America/Toronto Canada/Eastern Cuba EST5EDT US/East-Indiana US/Eastern US/Michigan | |
-05:00/-05:00 : America/Atikokan America/Bogota America/Cayman America/Coral_Harbour America/Eirunepe America/Guayaquil America/Jamaica America/Lima America/Panama America/Porto_Acre America/Rio_Branco Brazil/Acre EST Etc/GMT+5 Jamaica | |
-05:00/-06:00 : Chile/EasterIsland Pacific/Easter | |
-06:00/-05:00 : America/Bahia_Banderas America/Cancun America/Chicago America/Indiana/Knox America/Indiana/Tell_City America/Knox_IN America/Matamoros America/Menominee America/Merida America/Mexico_City America/Monterrey America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem America/Rainy_River America/Rankin_Inlet America/Resolute America/Winnipeg CST6CDT Canada/Central Mexico/General US/Central US/Indiana-Starke | |
-06:00/-06:00 : America/Belize America/Costa_Rica America/El_Salvador America/Guatemala America/Managua America/Regina America/Swift_Current America/Tegucigalpa Canada/East-Saskatchewan Canada/Saskatchewan Etc/GMT+6 Pacific/Galapagos | |
-07:00/-06:00 : America/Boise America/Cambridge_Bay America/Chihuahua America/Denver America/Edmonton America/Inuvik America/Mazatlan America/Ojinaga America/Shiprock America/Yellowknife Canada/Mountain MST7MDT Mexico/BajaSur Navajo US/Mountain | |
-07:00/-07:00 : America/Creston America/Dawson_Creek America/Hermosillo America/Phoenix Etc/GMT+7 MST US/Arizona | |
-08:00/-07:00 : America/Dawson America/Ensenada America/Los_Angeles America/Santa_Isabel America/Tijuana America/Vancouver America/Whitehorse Canada/Pacific Canada/Yukon Mexico/BajaNorte PST8PDT US/Pacific US/Pacific-New | |
-08:00/-08:00 : America/Metlakatla Etc/GMT+8 Pacific/Pitcairn | |
-09:00/-08:00 : America/Anchorage America/Juneau America/Nome America/Sitka America/Yakutat US/Alaska | |
-09:00/-09:00 : Etc/GMT+9 Pacific/Gambier | |
-09:30/-09:30 : Pacific/Marquesas | |
-10:00/-09:00 : America/Adak America/Atka US/Aleutian | |
-10:00/-10:00 : Etc/GMT+10 HST Pacific/Honolulu Pacific/Johnston Pacific/Rarotonga Pacific/Tahiti US/Hawaii | |
-11:00/-11:00 : Etc/GMT+11 Pacific/Midway Pacific/Niue Pacific/Pago_Pago Pacific/Samoa US/Samoa | |
-12:00/-12:00 : Etc/GMT+12 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+00:00/+00:00 : Etc/UTC | |
+00:00/+01:00 : Europe/London | |
+00:00/+02:00 : Antarctica/Troll | |
+01:00/+01:00 : Africa/Lagos | |
+01:00/+02:00 : Europe/Berlin | |
+02:00/+01:00 : Africa/Windhoek | |
+02:00/+02:00 : Africa/Johannesburg | |
+02:00/+03:00 : Asia/Beirut | |
+03:00/+03:00 : Europe/Moscow | |
+03:30/+04:30 : Asia/Tehran | |
+04:00/+04:00 : Asia/Dubai | |
+04:00/+05:00 : Asia/Baku | |
+04:30/+04:30 : Asia/Kabul | |
+05:00/+05:00 : Asia/Yekaterinburg | |
+05:30/+05:30 : Asia/Kolkata | |
+05:45/+05:45 : Asia/Kathmandu | |
+06:00/+06:00 : Asia/Omsk | |
+06:30/+06:30 : Asia/Rangoon | |
+07:00/+07:00 : Asia/Krasnoyarsk | |
+08:00/+08:00 : Asia/Shanghai | |
+08:45/+08:45 : Australia/Eucla | |
+09:00/+09:00 : Asia/Yakutsk | |
+09:30/+09:30 : Australia/Darwin | |
+10:00/+10:00 : Australia/Brisbane | |
+10:30/+09:30 : Australia/Adelaide | |
+11:00/+10:00 : Australia/Sydney | |
+11:00/+10:30 : Australia/Lord_Howe | |
+11:00/+11:00 : Pacific/Noumea | |
+11:30/+11:30 : Pacific/Norfolk | |
+12:00/+12:00 : Pacific/Tarawa | |
+13:00/+12:00 : Pacific/Auckland | |
+13:00/+13:00 : Pacific/Tongatapu | |
+13:45/+12:45 : Pacific/Chatham | |
+14:00/+13:00 : Pacific/Apia | |
+14:00/+14:00 : Pacific/Kiritimati | |
-01:00/+00:00 : Atlantic/Azores | |
-01:00/-01:00 : Atlantic/Cape_Verde | |
-02:00/-02:00 : America/Noronha | |
-02:00/-03:00 : America/Montevideo | |
-03:00/-02:00 : America/Godthab | |
-03:00/-03:00 : America/Argentina/Buenos_Aires | |
-03:00/-04:00 : America/Santiago | |
-03:30/-02:30 : America/St_Johns | |
-04:00/-03:00 : America/Halifax | |
-04:00/-04:00 : America/Santo_Domingo | |
-04:30/-04:30 : America/Caracas | |
-05:00/-04:00 : America/New_York | |
-05:00/-05:00 : America/Bogota | |
-05:00/-06:00 : Pacific/Easter | |
-06:00/-05:00 : America/Chicago | |
-06:00/-06:00 : America/Guatemala | |
-07:00/-06:00 : America/Denver | |
-07:00/-07:00 : America/Phoenix | |
-08:00/-07:00 : America/Los_Angeles | |
-08:00/-08:00 : Pacific/Pitcairn | |
-09:00/-08:00 : America/Anchorage | |
-09:00/-09:00 : Pacific/Gambier | |
-09:30/-09:30 : Pacific/Marquesas | |
-10:00/-09:00 : America/Adak | |
-10:00/-10:00 : Pacific/Honolulu | |
-11:00/-11:00 : Pacific/Pago_Pago | |
-12:00/-12:00 : Etc/GMT+12 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var moment = require('./index'); | |
var times = {} | |
function key(month, name) { | |
return moment.tz([2015, month, 1], name).utcOffset() | |
} | |
moment.tz.names().forEach(function (name) { | |
var k = key(0, name) + ' ' + key(6, name); | |
times[k] = times[k] || []; | |
times[k].push(name); | |
}) | |
whitelist = ['Pacific/Majuro','Pacific/Pago_Pago','America/Adak','Pacific/Honolulu','Pacific/Marquesas','Pacific/Gambier','America/Anchorage','America/Los_Angeles','Pacific/Pitcairn','America/Phoenix','America/Denver','America/Guatemala','America/Chicago','Pacific/Easter','America/Bogota','America/New_York','America/Caracas','America/Halifax','America/Santo_Domingo','America/Santiago','America/St_Johns','America/Godthab','America/Argentina/Buenos_Aires','America/Montevideo','America/Noronha','America/Noronha','Atlantic/Azores','Atlantic/Cape_Verde','Etc/UTC','Europe/London','Europe/Berlin','Africa/Lagos','Africa/Windhoek','Asia/Beirut','Africa/Johannesburg','Asia/Baghdad','Europe/Moscow','Asia/Tehran','Asia/Dubai','Asia/Baku','Asia/Kabul','Asia/Yekaterinburg','Asia/Karachi','Asia/Kolkata','Asia/Kathmandu','Asia/Dhaka','Asia/Omsk','Asia/Rangoon','Asia/Krasnoyarsk','Asia/Jakarta','Asia/Shanghai','Asia/Irkutsk','Australia/Eucla','Australia/Eucla','Asia/Yakutsk','Asia/Tokyo','Australia/Darwin','Australia/Adelaide','Australia/Brisbane','Asia/Vladivostok','Australia/Sydney','Australia/Lord_Howe','Asia/Kamchatka','Pacific/Noumea','Pacific/Norfolk','Pacific/Auckland','Pacific/Tarawa','Pacific/Chatham','Pacific/Tongatapu','Pacific/Apia','Pacific/Kiritimati', 'Asia/Ulaanbaatar', 'America/Campo_Grande'] | |
Object.keys(times).forEach(function (key) { | |
times[key].forEach(function (name) { | |
if (whitelist.indexOf(name) > -1) { | |
times[key] = name | |
} | |
}) | |
}) | |
function toNem (z) { | |
return moment().utcOffset(+z).format('Z') | |
} | |
function zero(number, targetLength, forceSign) { | |
var output = '' + number; | |
while (output.length < targetLength) { | |
output = ' ' + output; | |
} | |
return output; | |
} | |
var names = [] | |
console.log(Object.keys(times).map(function (k) { | |
var ks = k.split(' ') | |
var name = (times[k].join ? times[k].join(' ') : times[k]); | |
names.push(name) | |
return '"test january ' + toNem(ks[0]) + ' july ' + toNem(ks[1]) + '" : makeCurrentZoneTest(' + zero(ks[0], 5) + ', ' + zero(ks[1], 5) + ', "' + name + '"),'; | |
}).sort().join('\n')) | |
var hash = {} | |
names.forEach(function (k) { | |
var s = k.replace(/\s/g, '_').split('/'); | |
var t = s.shift().toLowerCase() | |
s = s.join('_').toLowerCase() | |
hash[t] = hash[t] || [] | |
hash[t].push(s); | |
}) | |
Object.keys(hash).forEach(function(k) { | |
hash[k] = hash[k].join(' ') | |
}) | |
console.log(hash); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
africa: 'johannesburg lagos windhoek' | |
america: 'adak anchorage argentina_buenos_aires bogota caracas chicago denver godthab guatemala halifax los_angeles montevideo new_york noronha phoenix santiago santo_domingo st_johns' | |
antarctica: 'troll' | |
asia: 'baku beirut dubai kabul kathmandu kolkata krasnoyarsk omsk rangoon shanghai tehran yakutsk yekaterinburg' | |
atlantic: 'azores cape_verde' | |
australia: 'adelaide brisbane darwin eucla lord_howe sydney' | |
etc: 'utc' | |
europe: 'berlin london moscow' | |
pacific: 'apia auckland chatham easter gambier honolulu kiritimati marquesas norfolk noumea pago_pago pitcairn tarawa tongatapu' | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment