Skip to content

Instantly share code, notes, and snippets.

@enjalot
Created July 12, 2014 00:43
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save enjalot/64b33b472e145b2a5fcd to your computer and use it in GitHub Desktop.
Save enjalot/64b33b472e145b2a5fcd to your computer and use it in GitHub Desktop.
rendering timezones in derby
MONTH_NAMES = [
'January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'
]
moment = (input, format, lang, strict) ->
moment = require 'moment-timezone'
return moment input, format, lang, strict
formats =
'default': 'h:mma M/DD/YY' # 3:15pm 8/2/2012
'timeDayDate': 'h:mma, ddd M/DD/YY' # 3:15pm, Thu 8/2/2012
'date': 'MMM D, YYYY' # Aug 2, 2013
'compactDate': 'M/DD/YY' # 6/11/85
'compactDateOrToday': 'M/DD/YY' # 6/11/85
'dayDate': 'ddd, M/DD/YY' # Fri 8/2/12
'day': 'ddd'
'time': 'h:mm a' # 3:15 pm
'monthDay': 'MMM D' # Aug 2
'monthDayTime': 'MMM D, h:mm a' # Aug 2, 20:15 PST
'compactDateWithDay': 'ddd M/DD/YY'
'relative': true
'compactDateTime': 'M/DD/YY ⋅ h:mm A'
'calendar': true
exports.moment = (input, format, lang, strict) ->
return moment input, format, lang, strict
exports.format = (ms, timezoneName = "America/Los_Angeles", pattern = 'default') ->
return unless ms
if pattern == 'relative'
return moment(ms).fromNow(false)
else if pattern == 'calendar'
return moment(ms).tz(timezoneName).calendar()
else
if pattern =='compactDateOrToday' && moment(ms).tz(timezoneName).dayOfYear() == moment().tz(timezoneName).dayOfYear()
return 'Today'
else
return moment(ms).tz(timezoneName).format(formats[pattern] || pattern)
# Returns a time range, duration is in minutes
exports.range = (ms, duration, timezoneName = "America/Los_Angeles") ->
return unless ms && duration
startA = moment(ms).tz(timezoneName).format('a')
endA = moment(ms).tz(timezoneName).format('a')
startMoment = moment(ms).tz(timezoneName)
duration = duration * 60 * 1000
endMoment = moment(ms + duration).tz(timezoneName)
if startA == endA
start = startMoment.format('h:mm')
end = endMoment.format('h:mm a')
else
start = startMoment.format('h:mm a')
end = endMoment.format('h:mm a')
return start + ' - ' + end
# Timezone calculations are extremely CPU intensive the first time. It is very
# important that we cache these calculations at build time and don't do them
# on server start or page load
try
timezoneOptions = require './timezoneOptions.json'
catch err
timezoneOptions = require './timezoneSource.json'
for option in timezoneOptions
option.gmt = moment().tz(option.value).format('Z')
timezoneOptions.sort (a, b) ->
diff = moment().tz(b.value).zone() - moment().tz(a.value).zone()
return diff if diff
aName = a.name.toLowerCase()
bName = b.name.toLowerCase()
return 1 if aName > bName
return -1 if aName < bName
return 0
data = JSON.stringify timezoneOptions, null, 2
require('fs').writeFileSync __dirname + '/timezoneOptions.json', data
exports.timezoneOptions = timezoneOptions
timezoneMap = {}
for option in timezoneOptions
option.text = 'GMT ' + option.gmt + ' - ' + option.name
option.display = option.name + ' (GMT ' + option.gmt + ')'
timezoneMap[option.value] = option
exports.displayTimezone = (value) ->
return timezoneMap[value]?.display
exports.displayTimezoneAbbreviation = (value) ->
return timezoneMap[value]?.abbreviation
exports.displayTimezoneCompact = (value) ->
return timezoneMap[value]?.name
exports.sparseDateRange = (startDate, endDate) ->
return unless startDate?.year
duration = sparseDuration(startDate, endDate)
duration = ' (' + duration + ')' if duration
start = formatSparseDate startDate
return start + ' to Present' + duration unless endDate?.year
end = formatSparseDate endDate
return start + ' to ' + end + duration
exports.sparseDuration = sparseDuration = (startDate, endDate) ->
unless endDate?.year
now = new Date
endDate =
month: now.getMonth()
year: now.getFullYear()
months = (endDate.year - startDate.year) * 12 + (endDate.month || 0) - startDate.month + 1
months = Math.max months, 0
years = Math.floor months / 12
months = months % 12
out = []
if years then out.push years + ' ' + pluralize(years, 'year', 'years')
if months then out.push months + ' ' + pluralize(months, 'month', 'months')
return out.join ' '
formatSparseDate = (sparseDate) ->
month = MONTH_NAMES[sparseDate.month]
return if month then month + ' ' + sparseDate.year else sparseDate.year
pluralize = (num, singular, plural) ->
if num is 1 then singular else plural
[
{"value": "Africa/Abidjan", "name": "Abidjan", "abbreviation": "GMT"},
{"value": "Africa/Accra", "name": "Accra", "abbreviation": "GMT"},
{"value": "Africa/Addis_Ababa", "name": "Addis Ababa", "abbreviation": "EAT"},
{"value": "Africa/Algiers", "name": "Algiers", "abbreviation": "CET"},
{"value": "Africa/Asmara", "name": "Asmera", "abbreviation": "EAT"},
{"value": "Africa/Bamako", "name": "Bamako", "abbreviation": "GMT"},
{"value": "Africa/Bangui", "name": "Bangui", "abbreviation": "WAT"},
{"value": "Africa/Banjul", "name": "Banjul", "abbreviation": "GMT"},
{"value": "Africa/Bissau", "name": "Bissau", "abbreviation": "GMT"},
{"value": "Africa/Blantyre", "name": "Blantyre", "abbreviation": "CAT"},
{"value": "Africa/Brazzaville", "name": "Brazzaville", "abbreviation": "WAT"},
{"value": "Africa/Bujumbura", "name": "Bujumbura", "abbreviation": "CAT"},
{"value": "Africa/Cairo", "name": "Cairo", "abbreviation": "EET"},
{"value": "Africa/Casablanca", "name": "Casablanca", "abbreviation": "WET"},
{"value": "Africa/Ceuta", "name": "Ceuta", "abbreviation": "CEST"},
{"value": "Africa/Conakry", "name": "Conakry", "abbreviation": "GMT"},
{"value": "Africa/Dakar", "name": "Dakar", "abbreviation": "GMT"},
{"value": "Africa/Dar_es_Salaam", "name": "Dar es Salaam", "abbreviation": "EAT"},
{"value": "Africa/Djibouti", "name": "Djibouti", "abbreviation": "EAT"},
{"value": "Africa/Douala", "name": "Douala", "abbreviation": "WAT"},
{"value": "Africa/El_Aaiun", "name": "El Aaiun", "abbreviation": "WET"},
{"value": "Africa/Freetown", "name": "Freetown", "abbreviation": "GMT"},
{"value": "Africa/Gaborone", "name": "Gaborone", "abbreviation": "CAT"},
{"value": "Africa/Harare", "name": "Harare", "abbreviation": "CAT"},
{"value": "Africa/Johannesburg", "name": "Johannesburg", "abbreviation": "SAST"},
{"value": "Africa/Kampala", "name": "Kampala", "abbreviation": "EAT"},
{"value": "Africa/Khartoum", "name": "Khartoum", "abbreviation": "EAT"},
{"value": "Africa/Kigali", "name": "Kigali", "abbreviation": "CAT"},
{"value": "Africa/Kinshasa", "name": "Kinshasa", "abbreviation": "WAT"},
{"value": "Africa/Lagos", "name": "Lagos", "abbreviation": "WAT"},
{"value": "Africa/Libreville", "name": "Libreville", "abbreviation": "WAT"},
{"value": "Africa/Lome", "name": "Lome", "abbreviation": "GMT"},
{"value": "Africa/Luanda", "name": "Luanda", "abbreviation": "WAT"},
{"value": "Africa/Lubumbashi", "name": "Lubumbashi", "abbreviation": "CAT"},
{"value": "Africa/Lusaka", "name": "Lusaka", "abbreviation": "CAT"},
{"value": "Africa/Malabo", "name": "Malabo", "abbreviation": "WAT"},
{"value": "Africa/Maputo", "name": "Maputo", "abbreviation": "CAT"},
{"value": "Africa/Maseru", "name": "Maseru", "abbreviation": "SAST"},
{"value": "Africa/Mbabane", "name": "Mbabane", "abbreviation": "SAST"},
{"value": "Africa/Mogadishu", "name": "Mogadishu", "abbreviation": "EAT"},
{"value": "Africa/Monrovia", "name": "Monrovia", "abbreviation": "GMT"},
{"value": "Africa/Nairobi", "name": "Nairobi", "abbreviation": "EAT"},
{"value": "Africa/Ndjamena", "name": "Ndjamena", "abbreviation": "WAT"},
{"value": "Africa/Niamey", "name": "Niamey", "abbreviation": "WAT"},
{"value": "Africa/Nouakchott", "name": "Nouakchott", "abbreviation": "GMT"},
{"value": "Africa/Ouagadougou", "name": "Ouagadougou", "abbreviation": "GMT"},
{"value": "Africa/Porto-Novo", "name": "Porto-Novo", "abbreviation": "WAT"},
{"value": "Africa/Sao_Tome", "name": "Sao Tome", "abbreviation": "GMT"},
{"value": "Africa/Tripoli", "name": "Tripoli", "abbreviation": "CEST"},
{"value": "Africa/Tunis", "name": "Tunis", "abbreviation": "CET"},
{"value": "Africa/Windhoek", "name": "Windhoek", "abbreviation": "WAST"},
{"value": "America/Anchorage", "name": "Alaska Time", "abbreviation": "AKST"},
{"value": "America/Antigua", "name": "Antigua", "abbreviation": "AST"},
{"value": "America/Araguaina", "name": "Araguaina", "abbreviation": "BRT"},
{"value": "America/Argentina/Buenos_Aires", "name": "Buenos Aires", "abbreviation": "ART"},
{"value": "America/Asuncion", "name": "Asuncion", "abbreviation": "PYT"},
{"value": "America/Bahia", "name": "Salvador", "abbreviation": "BRT"},
{"value": "America/Barbados", "name": "Barbados", "abbreviation": "AST"},
{"value": "America/Belem", "name": "Belem", "abbreviation": "BRT"},
{"value": "America/Belize", "name": "Belize", "abbreviation": "CST"},
{"value": "America/Boa_Vista", "name": "Boa Vista", "abbreviation": "AMT"},
{"value": "America/Bogota", "name": "Bogota", "abbreviation": "COT"},
{"value": "America/Campo_Grande", "name": "Campo Grande", "abbreviation": "AMT"},
{"value": "America/Caracas", "name": "Caracas", "abbreviation": "VET"},
{"value": "America/Cayenne", "name": "Cayenne", "abbreviation": "GFT"},
{"value": "America/Cayman", "name": "Cayman", "abbreviation": "EST"},
{"value": "America/Chicago", "name": "Central Time", "abbreviation": "CST", "abbreviation": "CST"},
{"value": "America/Costa_Rica", "name": "Costa Rica", "abbreviation": "CST"},
{"value": "America/Cuiaba", "name": "Cuiaba", "abbreviation": "AMT"},
{"value": "America/Curacao", "name": "Curacao", "abbreviation": "AST"},
{"value": "America/Danmarkshavn", "name": "Danmarkshavn", "abbreviation": "GMT"},
{"value": "America/Dawson_Creek", "name": "Mountain Time - Dawson Creek", "abbreviation": "MST"},
{"value": "America/Denver", "name": "Mountain Time", "abbreviation": "MST", "abbreviation": "MST"},
{"value": "America/Edmonton", "name": "Mountain Time - Edmonton", "abbreviation": "MST"},
{"value": "America/El_Salvador", "name": "El Salvador", "abbreviation": "CST"},
{"value": "America/Fortaleza", "name": "Fortaleza", "abbreviation": "BRT"},
{"value": "America/Godthab", "name": "Godthab", "abbreviation": "WGST"},
{"value": "America/Grand_Turk", "name": "Grand Turk", "abbreviation": "EST"},
{"value": "America/Guatemala", "name": "Guatemala", "abbreviation": "CST"},
{"value": "America/Guayaquil", "name": "Guayaquil", "abbreviation": "ECT"},
{"value": "America/Guyana", "name": "Guyana", "abbreviation": "GYT"},
{"value": "America/Halifax", "name": "Atlantic Time - Halifax", "abbreviation": "AST"},
{"value": "America/Havana", "name": "Havana", "abbreviation": "CST"},
{"value": "America/Hermosillo", "name": "Mountain Time - Hermosillo", "abbreviation": "MST"},
{"value": "America/Iqaluit", "name": "Eastern Time - Iqaluit", "abbreviation": "EST"},
{"value": "America/Jamaica", "name": "Jamaica", "abbreviation": "EST"},
{"value": "America/La_Paz", "name": "La Paz", "abbreviation": "BOT"},
{"value": "America/Lima", "name": "Lima", "abbreviation": "PET"},
{"value": "America/Los_Angeles", "name": "Pacific Time", "abbreviation": "PST", "abbreviation": "PST"},
{"value": "America/Maceio", "name": "Maceio", "abbreviation": "BRT"},
{"value": "America/Managua", "name": "Managua", "abbreviation": "CST"},
{"value": "America/Manaus", "name": "Manaus", "abbreviation": "AMT"},
{"value": "America/Martinique", "name": "Martinique", "abbreviation": "AST"},
{"value": "America/Mazatlan", "name": "Mountain Time - Chihuahua, Mazatlan", "abbreviation": "MST"},
{"value": "America/Mexico_City", "name": "Central Time - Mexico City", "abbreviation": "CST"},
{"value": "America/Miquelon", "name": "Miquelon", "abbreviation": "PMST"},
{"value": "America/Montevideo", "name": "Montevideo", "abbreviation": "UYT"},
{"value": "America/Montreal", "name": "Eastern Time - Montreal", "abbreviation": "EST"},
{"value": "America/Nassau", "name": "Nassau", "abbreviation": "EST"},
{"value": "America/New_York", "name": "Eastern Time", "abbreviation": "EST", "abbreviation": "EST"},
{"value": "America/Noronha", "name": "Noronha", "abbreviation": "FNT"},
{"value": "America/Panama", "name": "Panama", "abbreviation": "EST"},
{"value": "America/Paramaribo", "name": "Paramaribo", "abbreviation": "SRT"},
{"value": "America/Phoenix", "name": "Mountain Time - Arizona", "abbreviation": "MST"},
{"value": "America/Port_of_Spain", "name": "Port of Spain", "abbreviation": "AST"},
{"value": "America/Port-au-Prince", "name": "Port-au-Prince", "abbreviation": "EST"},
{"value": "America/Porto_Velho", "name": "Porto Velho", "abbreviation": "AMT"},
{"value": "America/Puerto_Rico", "name": "Puerto Rico", "abbreviation": "AST"},
{"value": "America/Recife", "name": "Recife", "abbreviation": "BRT"},
{"value": "America/Regina", "name": "Central Time - Regina", "abbreviation": "CST"},
{"value": "America/Rio_Branco", "name": "Rio Branco", "abbreviation": "AMT"},
{"value": "America/Santiago", "name": "Santiago", "abbreviation": "CLST"},
{"value": "America/Santo_Domingo", "name": "Santo Domingo", "abbreviation": "AST"},
{"value": "America/Sao_Paulo", "name": "Sao Paulo", "abbreviation": "BRT"},
{"value": "America/Scoresbysund", "name": "Scoresbysund", "abbreviation": "EGST"},
{"value": "America/St_Johns", "name": "Newfoundland Time - St. Johns", "abbreviation": "NST"},
{"value": "America/Tegucigalpa", "name": "Central Time - Tegucigalpa", "abbreviation": "CST"},
{"value": "America/Thule", "name": "Thule", "abbreviation": "AST"},
{"value": "America/Tijuana", "name": "Pacific Time - Tijuana", "abbreviation": "PST"},
{"value": "America/Toronto", "name": "Eastern Time - Toronto", "abbreviation": "EST"},
{"value": "America/Vancouver", "name": "Pacific Time - Vancouver", "abbreviation": "PST"},
{"value": "America/Whitehorse", "name": "Pacific Time - Whitehorse", "abbreviation": "PST"},
{"value": "America/Winnipeg", "name": "Central Time - Winnipeg", "abbreviation": "CST"},
{"value": "America/Yellowknife", "name": "Mountain Time - Yellowknife", "abbreviation": "MST"},
{"value": "Antarctica/Casey", "name": "Casey", "abbreviation": "WST"},
{"value": "Antarctica/Davis", "name": "Davis", "abbreviation": "DAVT"},
{"value": "Antarctica/DumontDUrville", "name": "Dumont D'Urville", "abbreviation": "DDUT"},
{"value": "Antarctica/Mawson", "name": "Mawson", "abbreviation": "MAWT"},
{"value": "Antarctica/Palmer", "name": "Palmer", "abbreviation": "CLST"},
{"value": "Antarctica/Rothera", "name": "Rothera", "abbreviation": "ROTT"},
{"value": "Antarctica/Syowa", "name": "Syowa", "abbreviation": "SYOT"},
{"value": "Antarctica/Vostok", "name": "Vostok", "abbreviation": "VOST"},
{"value": "Asia/Aden", "name": "Aden", "abbreviation": "AST"},
{"value": "Asia/Almaty", "name": "Almaty", "abbreviation": "ALMT"},
{"value": "Asia/Amman", "name": "Amman", "abbreviation": "EEST"},
{"value": "Asia/Aqtau", "name": "Aqtau", "abbreviation": "AQTT"},
{"value": "Asia/Aqtobe", "name": "Aqtobe", "abbreviation": "AQTT"},
{"value": "Asia/Ashgabat", "name": "Ashgabat", "abbreviation": "TMT"},
{"value": "Asia/Baghdad", "name": "Baghdad", "abbreviation": "AST"},
{"value": "Asia/Bahrain", "name": "Bahrain", "abbreviation": "AST"},
{"value": "Asia/Baku", "name": "Baku", "abbreviation": "AZST"},
{"value": "Asia/Bangkok", "name": "Bangkok", "abbreviation": "ICT"},
{"value": "Asia/Beirut", "name": "Beirut", "abbreviation": "EEST"},
{"value": "Asia/Bishkek", "name": "Bishkek", "abbreviation": "KGT"},
{"value": "Asia/Brunei", "name": "Brunei", "abbreviation": "BNT"},
{"value": "Asia/Calcutta", "name": "India Standard Time", "abbreviation": "IST"},
{"value": "Asia/Choibalsan", "name": "Choibalsan", "abbreviation": "CHOT"},
{"value": "Asia/Colombo", "name": "Colombo", "abbreviation": "IST"},
{"value": "Asia/Damascus", "name": "Damascus", "abbreviation": "EEST"},
{"value": "Asia/Dhaka", "name": "Dhaka", "abbreviation": "BDT"},
{"value": "Asia/Dili", "name": "Dili", "abbreviation": "TLT"},
{"value": "Asia/Dubai", "name": "Dubai", "abbreviation": "GST"},
{"value": "Asia/Dushanbe", "name": "Dushanbe", "abbreviation": "TJT"},
{"value": "Asia/Gaza", "name": "Gaza", "abbreviation": "EEST"},
{"value": "Asia/Hong_Kong", "name": "Hong Kong", "abbreviation": "HKT"},
{"value": "Asia/Hovd", "name": "Hovd", "abbreviation": "HOVT"},
{"value": "Asia/Irkutsk", "name": "Moscow+05 - Irkutsk", "abbreviation": "IRKT"},
{"value": "Asia/Jakarta", "name": "Jakarta", "abbreviation": "WIT"},
{"value": "Asia/Jayapura", "name": "Jayapura", "abbreviation": "EIT"},
{"value": "Asia/Jerusalem", "name": "Jerusalem", "abbreviation": "IST"},
{"value": "Asia/Kabul", "name": "Kabul", "abbreviation": "AFT"},
{"value": "Asia/Kamchatka", "name": "Moscow+08 - Petropavlovsk-Kamchatskiy", "abbreviation": "PETT"},
{"value": "Asia/Karachi", "name": "Karachi", "abbreviation": "PKT"},
{"value": "Asia/Katmandu", "name": "Katmandu", "abbreviation": "NPT"},
{"value": "Asia/Krasnoyarsk", "name": "Moscow+04 - Krasnoyarsk", "abbreviation": "KRAT"},
{"value": "Asia/Kuala_Lumpur", "name": "Kuala Lumpur", "abbreviation": "MYT"},
{"value": "Asia/Kuwait", "name": "Kuwait", "abbreviation": "AST"},
{"value": "Asia/Macau", "name": "Macau", "abbreviation": "CST"},
{"value": "Asia/Magadan", "name": "Moscow+08 - Magadan", "abbreviation": "MAGT"},
{"value": "Asia/Makassar", "name": "Makassar", "abbreviation": "CIT"},
{"value": "Asia/Manila", "name": "Manila", "abbreviation": "PHT"},
{"value": "Asia/Muscat", "name": "Muscat", "abbreviation": "GST"},
{"value": "Asia/Nicosia", "name": "Nicosia", "abbreviation": "EEST"},
{"value": "Asia/Omsk", "name": "Moscow+03 - Omsk, Novosibirsk", "abbreviation": "OMST"},
{"value": "Asia/Phnom_Penh", "name": "Phnom Penh", "abbreviation": "ICT"},
{"value": "Asia/Pyongyang", "name": "Pyongyang", "abbreviation": "KST"},
{"value": "Asia/Qatar", "name": "Qatar", "abbreviation": "AST"},
{"value": "Asia/Rangoon", "name": "Rangoon", "abbreviation": "MMT"},
{"value": "Asia/Riyadh", "name": "Riyadh", "abbreviation": "AST"},
{"value": "Asia/Saigon", "name": "Hanoi", "abbreviation": "ICT"},
{"value": "Asia/Seoul", "name": "Seoul", "abbreviation": "KST"},
{"value": "Asia/Shanghai", "name": "China Time - Beijing", "abbreviation": "CST"},
{"value": "Asia/Singapore", "name": "Singapore", "abbreviation": "SGT"},
{"value": "Asia/Taipei", "name": "Taipei", "abbreviation": "CST"},
{"value": "Asia/Tashkent", "name": "Tashkent", "abbreviation": "UZT"},
{"value": "Asia/Tbilisi", "name": "Tbilisi", "abbreviation": "GET"},
{"value": "Asia/Tehran", "name": "Tehran", "abbreviation": "IRST"},
{"value": "Asia/Thimphu", "name": "Thimphu", "abbreviation": "BTT"},
{"value": "Asia/Tokyo", "name": "Tokyo", "abbreviation": "JST"},
{"value": "Asia/Ulaanbaatar", "name": "Ulaanbaatar", "abbreviation": "ULAT"},
{"value": "Asia/Vientiane", "name": "Vientiane", "abbreviation": "ICT"},
{"value": "Asia/Vladivostok", "name": "Moscow+07 - Yuzhno-Sakhalinsk", "abbreviation": "VLAT"},
{"value": "Asia/Yakutsk", "name": "Moscow+06 - Yakutsk", "abbreviation": "YAKT"},
{"value": "Asia/Yekaterinburg", "name": "Moscow+02 - Yekaterinburg", "abbreviation": "YEKT"},
{"value": "Asia/Yerevan", "name": "Yerevan", "abbreviation": "AMT"},
{"value": "Atlantic/Azores", "name": "Azores", "abbreviation": "AZOST"},
{"value": "Atlantic/Bermuda", "name": "Bermuda", "abbreviation": "AST"},
{"value": "Atlantic/Canary", "name": "Canary Islands", "abbreviation": "WEST"},
{"value": "Atlantic/Cape_Verde", "name": "Cape Verde", "abbreviation": "CVT"},
{"value": "Atlantic/Faroe", "name": "Faeroe", "abbreviation": "WEST"},
{"value": "Atlantic/Reykjavik", "name": "Reykjavik", "abbreviation": "GMT"},
{"value": "Atlantic/South_Georgia", "name": "South Georgia", "abbreviation": "GST"},
{"value": "Atlantic/St_Helena", "name": "St Helena", "abbreviation": "GMT"},
{"value": "Atlantic/Stanley", "name": "Stanley", "abbreviation": "FKST"},
{"value": "Australia/Adelaide", "name": "Central Time - Adelaide", "abbreviation": "CST"},
{"value": "Australia/Brisbane", "name": "Eastern Time - Brisbane", "abbreviation": "EST"},
{"value": "Australia/Darwin", "name": "Central Time - Darwin", "abbreviation": "CST"},
{"value": "Australia/Hobart", "name": "Eastern Time - Hobart", "abbreviation": "EST"},
{"value": "Australia/Perth", "name": "Western Time - Perth", "abbreviation": "WST"},
{"value": "Australia/Sydney", "name": "Eastern Time - Melbourne, Sydney", "abbreviation": "EST"},
{"value": "Etc/GMT", "name": "GMT (no daylight saving)", "abbreviation": "GMT"},
{"value": "Europe/Amsterdam", "name": "Amsterdam", "abbreviation": "CEST"},
{"value": "Europe/Andorra", "name": "Andorra", "abbreviation": "CEST"},
{"value": "Europe/Athens", "name": "Athens", "abbreviation": "EEST"},
{"value": "Europe/Belgrade", "name": "Central European Time - Belgrade", "abbreviation": "CEST"},
{"value": "Europe/Berlin", "name": "Berlin", "abbreviation": "CEST"},
{"value": "Europe/Brussels", "name": "Brussels", "abbreviation": "CEST"},
{"value": "Europe/Bucharest", "name": "Bucharest", "abbreviation": "EEST"},
{"value": "Europe/Budapest", "name": "Budapest", "abbreviation": "CEST"},
{"value": "Europe/Chisinau", "name": "Chisinau", "abbreviation": "EEST"},
{"value": "Europe/Copenhagen", "name": "Copenhagen", "abbreviation": "CEST"},
{"value": "Europe/Dublin", "name": "Dublin", "abbreviation": "GMT/IST"},
{"value": "Europe/Gibraltar", "name": "Gibraltar", "abbreviation": "CEST"},
{"value": "Europe/Helsinki", "name": "Helsinki", "abbreviation": "EEST"},
{"value": "Europe/Istanbul", "name": "Istanbul", "abbreviation": "EEST"},
{"value": "Europe/Kaliningrad", "name": "Moscow-01 - Kaliningrad", "abbreviation": "FET"},
{"value": "Europe/Kiev", "name": "Kiev", "abbreviation": "EEST"},
{"value": "Europe/Lisbon", "name": "Lisbon", "abbreviation": "WEST"},
{"value": "Europe/London", "name": "London", "abbreviation": "GMT/BST"},
{"value": "Europe/Luxembourg", "name": "Luxembourg", "abbreviation": "CEST"},
{"value": "Europe/Madrid", "name": "Madrid", "abbreviation": "CEST"},
{"value": "Europe/Malta", "name": "Malta", "abbreviation": "CEST"},
{"value": "Europe/Minsk", "name": "Minsk", "abbreviation": "FET"},
{"value": "Europe/Monaco", "name": "Monaco", "abbreviation": "CEST"},
{"value": "Europe/Moscow", "name": "Moscow+00", "abbreviation": "MSK"},
{"value": "Europe/Oslo", "name": "Oslo", "abbreviation": "CEST"},
{"value": "Europe/Paris", "name": "Paris", "abbreviation": "CEST"},
{"value": "Europe/Prague", "name": "Central European Time - Prague", "abbreviation": "CEST"},
{"value": "Europe/Riga", "name": "Riga", "abbreviation": "EEST"},
{"value": "Europe/Rome", "name": "Rome", "abbreviation": "CEST"},
{"value": "Europe/Samara", "name": "Moscow+00 - Samara", "abbreviation": "SAMT"},
{"value": "Europe/Sofia", "name": "Sofia", "abbreviation": "EEST"},
{"value": "Europe/Stockholm", "name": "Stockholm", "abbreviation": "CEST"},
{"value": "Europe/Tallinn", "name": "Tallinn", "abbreviation": "EEST"},
{"value": "Europe/Tirane", "name": "Tirane", "abbreviation": "CEST"},
{"value": "Europe/Vienna", "name": "Vienna", "abbreviation": "CEST"},
{"value": "Europe/Vilnius", "name": "Vilnius", "abbreviation": "EEST"},
{"value": "Europe/Warsaw", "name": "Warsaw", "abbreviation": "CEST"},
{"value": "Europe/Zurich", "name": "Zurich", "abbreviation": "CEST"},
{"value": "Indian/Antananarivo", "name": "Antananarivo", "abbreviation": "EAT"},
{"value": "Indian/Chagos", "name": "Chagos", "abbreviation": "IOT"},
{"value": "Indian/Christmas", "name": "Christmas", "abbreviation": "CXT"},
{"value": "Indian/Cocos", "name": "Cocos", "abbreviation": "CCT"},
{"value": "Indian/Comoro", "name": "Comoro", "abbreviation": "EAT"},
{"value": "Indian/Kerguelen", "name": "Kerguelen", "abbreviation": "TFT"},
{"value": "Indian/Mahe", "name": "Mahe", "abbreviation": "SCT"},
{"value": "Indian/Maldives", "name": "Maldives", "abbreviation": "MVT"},
{"value": "Indian/Mauritius", "name": "Mauritius", "abbreviation": "MUT"},
{"value": "Indian/Mayotte", "name": "Mayotte", "abbreviation": "EAT"},
{"value": "Indian/Reunion", "name": "Reunion", "abbreviation": "RET"},
{"value": "Pacific/Apia", "name": "Apia", "abbreviation": "WST"},
{"value": "Pacific/Auckland", "name": "Auckland", "abbreviation": "NZST"},
{"value": "Pacific/Chuuk", "name": "Truk", "abbreviation": "CHUT"},
{"value": "Pacific/Easter", "name": "Easter Island", "abbreviation": "EASST"},
{"value": "Pacific/Efate", "name": "Efate", "abbreviation": "VUT"},
{"value": "Pacific/Enderbury", "name": "Enderbury", "abbreviation": "PHOT"},
{"value": "Pacific/Fakaofo", "name": "Fakaofo", "abbreviation": "TKT"},
{"value": "Pacific/Fiji", "name": "Fiji", "abbreviation": "FJT"},
{"value": "Pacific/Funafuti", "name": "Funafuti", "abbreviation": "TVT"},
{"value": "Pacific/Galapagos", "name": "Galapagos", "abbreviation": "GALT"},
{"value": "Pacific/Gambier", "name": "Gambier", "abbreviation": "GAMT"},
{"value": "Pacific/Guadalcanal", "name": "Guadalcanal", "abbreviation": "SBT"},
{"value": "Pacific/Guam", "name": "Guam", "abbreviation": "ChST"},
{"value": "Pacific/Honolulu", "name": "Hawaii Time", "abbreviation": "HST"},
{"value": "Pacific/Kiritimati", "name": "Kiritimati", "abbreviation": "LINT"},
{"value": "Pacific/Kosrae", "name": "Kosrae", "abbreviation": "KOST"},
{"value": "Pacific/Kwajalein", "name": "Kwajalein", "abbreviation": "MHT"},
{"value": "Pacific/Majuro", "name": "Majuro", "abbreviation": "MHT"},
{"value": "Pacific/Marquesas", "name": "Marquesas", "abbreviation": "MART"},
{"value": "Pacific/Midway", "name": "Midway", "abbreviation": "SST"},
{"value": "Pacific/Nauru", "name": "Nauru", "abbreviation": "NRT"},
{"value": "Pacific/Niue", "name": "Niue", "abbreviation": "NUT"},
{"value": "Pacific/Norfolk", "name": "Norfolk", "abbreviation": "NFT"},
{"value": "Pacific/Noumea", "name": "Noumea", "abbreviation": "NCT"},
{"value": "Pacific/Pago_Pago", "name": "Pago Pago", "abbreviation": "SST"},
{"value": "Pacific/Palau", "name": "Palau", "abbreviation": "PWT"},
{"value": "Pacific/Pitcairn", "name": "Pitcairn", "abbreviation": "PST"},
{"value": "Pacific/Pohnpei", "name": "Ponape", "abbreviation": "PONT"},
{"value": "Pacific/Port_Moresby", "name": "Port Moresby", "abbreviation": "PGT"},
{"value": "Pacific/Rarotonga", "name": "Rarotonga", "abbreviation": "CKT"},
{"value": "Pacific/Saipan", "name": "Saipan", "abbreviation": "ChST"},
{"value": "Pacific/Tahiti", "name": "Tahiti", "abbreviation": "TAHT"},
{"value": "Pacific/Tarawa", "name": "Tarawa", "abbreviation": "GILT"},
{"value": "Pacific/Tongatapu", "name": "Tongatapu", "abbreviation": "TOT"},
{"value": "Pacific/Wake", "name": "Wake", "abbreviation": "WAKT"},
{"value": "Pacific/Wallis", "name": "Wallis", "abbreviation": "WFT"}
]
timeUtil = require 'lever-util/time'
app.proto.formatTime = timeUtil.format
app.proto.displayTimezone = timeUtil.displayTimezone
app.proto.displayTimezoneAbbreviation = timeUtil.displayTimezoneAbbreviation
app.proto.displayTimezoneCompact = timeUtil.displayTimezoneCompact
app.proto.timeRange = timeUtil.range
app.proto.sparseDateRange = timeUtil.sparseDateRange
app.proto.sparseDuration = timeUtil.sparseDuration
<p>
{{formatTime(#myDate, #root._session.timezoneName, 'default')}}
</p>
<p>
{{formatTime(#myDate, #root._session.timezoneName, 'date')}}
</p>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment