Skip to content

Instantly share code, notes, and snippets.

@roobie
Created August 28, 2015 11:39
Show Gist options
  • Select an option

  • Save roobie/df95cdf9149493fdd0db to your computer and use it in GitHub Desktop.

Select an option

Save roobie/df95cdf9149493fdd0db to your computer and use it in GitHub Desktop.
var spToIana = [{ "id" : 2, "name" : "Europe/London" },
{ "id" : 3, "name" : "Europe/Paris" },
{ "id" : 4, "name" : "Europe/Berlin" },
{ "id" : 5, "name" : "Europe/Bucharest" },
{ "id" : 6, "name" : "Europe/Budapest" },
{ "id" : 7, "name" : "Europe/Kaliningrad" },
{ "id" : 8, "name" : "America/Sao_Paulo" },
{ "id" : 9, "name" : "America/Halifax" },
{ "id" : 10, "name" : "America/New_York" },
{ "id" : 11, "name" : "America/Chicago" },
{ "id" : 12, "name" : "America/Denver" },
{ "id" : 13, "name" : "America/Los_Angeles" },
{ "id" : 14, "name" : "America/Anchorage" },
{ "id" : 15, "name" : "Pacific/Honolulu" },
{ "id" : 16, "name" : "Pacific/Apia" },
{ "id" : 17, "name" : "Pacific/Auckland" },
{ "id" : 18, "name" : "Australia/Brisbane" },
{ "id" : 19, "name" : "Australia/Adelaide" },
{ "id" : 20, "name" : "Asia/Tokyo" },
{ "id" : 21, "name" : "Asia/Singapore" },
{ "id" : 22, "name" : "Asia/Bangkok" },
{ "id" : 23, "name" : "Asia/Kolkata" },
{ "id" : 24, "name" : "Asia/Dubai" },
{ "id" : 25, "name" : "Asia/Tehran" },
{ "id" : 26, "name" : "Asia/Baghdad" },
{ "id" : 27, "name" : "Asia/Jerusalem" },
{ "id" : 28, "name" : "America/St_Johns" },
{ "id" : 29, "name" : "Atlantic/Azores" },
{ "id" : 30, "name" : "Etc/GMT+2" },
{ "id" : 31, "name" : "Atlantic/Reykjavik" },
{ "id" : 32, "name" : "America/Cayenne" },
{ "id" : 33, "name" : "America/La_Paz" },
{ "id" : 34, "name" : "America/Indianapolis" },
{ "id" : 35, "name" : "America/Bogota" },
{ "id" : 36, "name" : "America/Regina" },
{ "id" : 37, "name" : "America/Mexico_City" },
{ "id" : 38, "name" : "America/Phoenix" },
{ "id" : 39, "name" : "Etc/GMT+12" },
{ "id" : 40, "name" : "Pacific/Fiji" },
{ "id" : 41, "name" : "Asia/Magadan" },
{ "id" : 42, "name" : "Australia/Hobart" },
{ "id" : 43, "name" : "Pacific/Port_Moresby" },
{ "id" : 44, "name" : "Australia/Darwin" },
{ "id" : 45, "name" : "Asia/Shanghai" },
{ "id" : 46, "name" : "Asia/Novosibirsk" },
{ "id" : 47, "name" : "Asia/Tashkent" },
{ "id" : 48, "name" : "Asia/Kabul" },
{ "id" : 49, "name" : "Africa/Cairo" },
{ "id" : 50, "name" : "Africa/Johannesburg" },
{ "id" : 51, "name" : "Europe/Moscow" },
{ "id" : 53, "name" : "Atlantic/Cape_Verde" },
{ "id" : 54, "name" : "Asia/Baku" },
{ "id" : 55, "name" : "America/Guatemala" },
{ "id" : 56, "name" : "Africa/Nairobi" },
{ "id" : 57, "name" : "Europe/Warsaw" },
{ "id" : 58, "name" : "Asia/Yekaterinburg" },
{ "id" : 59, "name" : "Europe/Kiev" },
{ "id" : 60, "name" : "America/Godthab" },
{ "id" : 61, "name" : "Asia/Rangoon" },
{ "id" : 62, "name" : "Asia/Katmandu" },
{ "id" : 63, "name" : "Asia/Irkutsk" },
{ "id" : 64, "name" : "Asia/Krasnoyarsk" },
{ "id" : 65, "name" : "America/Santiago" },
{ "id" : 66, "name" : "Asia/Colombo" },
{ "id" : 67, "name" : "Pacific/Tongatapu" },
{ "id" : 68, "name" : "Asia/Vladivostok" },
{ "id" : 69, "name" : "Africa/Lagos" },
{ "id" : 70, "name" : "Asia/Yakutsk" },
{ "id" : 71, "name" : "Asia/Almaty" },
{ "id" : 72, "name" : "Asia/Seoul" },
{ "id" : 73, "name" : "Australia/Perth" },
{ "id" : 74, "name" : "Asia/Riyadh" },
{ "id" : 75, "name" : "Asia/Taipei" },
{ "id" : 76, "name" : "Australia/Sydney" },
{ "id" : 77, "name" : "America/Chihuahua" },
{ "id" : 78, "name" : "America/Santa_Isabel" },
{ "id" : 79, "name" : "Asia/Amman" },
{ "id" : 80, "name" : "Asia/Beirut" },
{ "id" : 81, "name" : "America/Manaus" },
{ "id" : 82, "name" : "Asia/Tbilisi" },
{ "id" : 83, "name" : "Africa/Windhoek" },
{ "id" : 84, "name" : "Asia/Yerevan" },
{ "id" : 85, "name" : "America/Buenos_Aires" },
{ "id" : 86, "name" : "Africa/Casablanca" },
{ "id" : 87, "name" : "Asia/Karachi" },
{ "id" : 88, "name" : "America/Caracas" },
{ "id" : 89, "name" : "Indian/Mauritius" },
{ "id" : 90, "name" : "America/Montevideo" },
{ "id" : 91, "name" : "America/Asuncion" },
{ "id" : 92, "name" : "Asia/Kamchatka" },
{ "id" : 93, "name" : "UTC" },
{ "id" : 94, "name" : "Asia/Ulaanbaatar" },
{ "id" : 95, "name" : "Etc/GMT+11" },
{ "id" : 96, "name" : "Etc/GMT+2" },
{ "id" : 97, "name" : "Etc/GMT-12" },
{ "id" : 98, "name" : "Asia/Damascus" },
{ "id" : 99, "name" : "Asia/Magadan" },
{ "id" : 100, "name" : "Europe/Kaliningrad" },
{ "id" : 101, "name" : "Europe/Istanbul" },
{ "id" : 102, "name" : "Asia/Dhaka" },
{ "id" : 103, "name" : "America/Bahia" },
{ "id" : 104, "name" : "" }];
var spTable = {
"2": "(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London",
"3": "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris",
"4": "(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",
"5": "(GMT+02:00) Athens, Bucharest, Istanbul",
"6": "(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",
"7": "(GMT+02:00) Minsk",
"8": "(GMT-03:00) Brasilia",
"9": "(GMT-04:00) Atlantic Time (Canada)",
"10": "(GMT-05:00) Eastern Time (US and Canada)",
"11": "(GMT-06:00) Central Time (US and Canada)",
"12": "(GMT-07:00) Mountain Time (US and Canada)",
"13": "(GMT-08:00) Pacific Time (US and Canada)",
"14": "(GMT-09:00) Alaska",
"15": "(GMT-10:00) Hawaii",
"16": "(GMT-11:00) Midway Island, Samoa",
"17": "(GMT+12:00) Auckland, Wellington",
"18": "(GMT+10:00) Brisbane",
"19": "(GMT+09:30) Adelaide",
"20": "(GMT+09:00) Osaka, Sapporo, Tokyo",
"21": "(GMT+08:00) Kuala Lumpur, Singapore",
"22": "(GMT+07:00) Bangkok, Hanoi, Jakarta",
"23": "(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi",
"24": "(GMT+04:00) Abu Dhabi, Muscat",
"25": "(GMT+03:30) Tehran",
"26": "(GMT+03:00) Baghdad",
"27": "(GMT+02:00) Jerusalem",
"28": "(GMT-03:30) Newfoundland",
"29": "(GMT-01:00) Azores",
"30": "(GMT-02:00) Mid-Atlantic",
"31": "(GMT) Casablanca, Monrovia, Reykjavik",
"32": "(GMT-03:00) Buenos Aires, Georgetown",
"33": "(GMT-04:00) Caracas, La Paz",
"34": "(GMT-05:00) Indiana (East)",
"35": "(GMT-05:00) Bogota, Lima, Quito, Rio Branco",
"36": "(GMT-06:00) Saskatchewan",
"37": "(GMT-06:00) Guadalajara, Mexico City, Monterrey",
"38": "(GMT-07:00) Arizona",
"39": "(GMT-12:00) International Date Line West",
"40": "(GMT+12:00) Fiji Is., Kamchatka, Marshall Is.",
"41": "(GMT+11:00) Magadan, Solomon Is., New Caledonia",
"42": "(GMT+10:00) Hobart",
"43": "(GMT+10:00) Guam, Port Moresby",
"44": "(GMT+09:30) Darwin",
"45": "(GMT+08:00) Beijing, Chongqing, Hong Kong S.A.R., Urumqi",
"46": "(GMT+06:00) Almaty, Novosibirsk",
"47": "(GMT+05:00) Islamabad, Karachi, Tashkent",
"48": "(GMT+04:30) Kabul",
"49": "(GMT+02:00) Cairo",
"50": "(GMT+02:00) Harare, Pretoria",
"51": "(GMT+03:00) Moscow, St. Petersburg, Volgograd",
"53": "(GMT-01:00) Cape Verde Is.",
"54": "(GMT+04:00) Baku",
"55": "(GMT-06:00) Central America",
"56": "(GMT+03:00) Nairobi",
"57": "(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb",
"58": "(GMT+05:00) Ekaterinburg",
"59": "(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",
"60": "(GMT-03:00) Greenland",
"61": "(GMT+06:30) Yangon (Rangoon)",
"62": "(GMT+05:45) Kathmandu",
"63": "(GMT+08:00) Irkutsk, Ulaan Bataar",
"64": "(GMT+07:00) Krasnoyarsk",
"65": "(GMT-04:00) Santiago",
"66": "(GMT+05:30) Sri Jayawardenepura",
"67": "(GMT+13:00) Nuku'alofa",
"68": "(GMT+10:00) Vladivostok",
"69": "(GMT+01:00) West Central Africa",
"70": "(GMT+09:00) Yakutsk",
"71": "(GMT+06:00) Astana, Dhaka",
"72": "(GMT+09:00) Seoul",
"73": "(GMT+08:00) Perth",
"74": "(GMT+03:00) Kuwait, Riyadh",
"75": "(GMT+08:00) Taipei",
"76": "(GMT+10:00) Canberra, Melbourne, Sydney",
"77": "(GMT-07:00) Chihuahua, La Paz, Mazatlan",
"78": "(GMT-08:00) Tijuana, Baja California",
"79": "(GMT+02:00) Amman",
"80": "(GMT+02:00) Beirut",
"81": "(GMT-04:00) Manaus",
"82": "(GMT+03:00) Tbilisi",
"83": "(GMT+02:00) Windhoek",
"84": "(GMT+04:00) Yerevan"
};
// "zone(moment)|value(spTable)"
var mapIt = function (gmtorutc) {
return Object.keys(spTable).map(function (spKey) {
var link = spToIana.filter(function (kvp) {
return kvp.id.toString() === spKey;
})[0];
var spZoneName = spTable[spKey];
return link.name + '|' + spZoneName.replace('GMT', gmtorutc);
})
}
var a = mapIt('GMT').concat(mapIt('UTC')).sort();
JSON.stringify(a, null, 2);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment