Javascript Timezone
by jessekinsman
HTML
<p>Date String: <span id="ds"></span></p>
<p>Full Timezone: <span id="timezone"></span></p>
<p>Timezone Abbreviation: <span id="abb"></span></p>
<p>Timezone Offset: <span id="offset"></span></p>
<p>Timezone Offset: <span id="offset"></span></p>
<p>Regions:</p>
<p id="regions"></p>
JavaScript
function newTZDate(dt) {
var nDt = new Date(dt);
var api = {};
function getFullTz() {
return /\((.*)\)/.exec(nDt.toString())[1];
}
function getTzObj(vl) {
return timezones.find(function(ele) {
return ele.value == vl;
});
}
function getAbbr() {
var fullTz = getFullTz();
var obj = getTzObj(fullTz);
return obj.abbr;
}
function getDateString() {
return nDt.toString();
}
function getOffset() {
var fullTz = getFullTz();
var obj = getTzObj(fullTz);
return obj.offset;
}
function getUTCRegions() {
var fullTz = getFullTz();
var obj = getTzObj(fullTz);
return obj.utc;
}
api.dt = nDt;
api.getAbbr = getAbbr;
api.getFullTz = getFullTz;
api.getOffset = getOffset;
api.getDateStr = getDateString;
api.getUTCRegions = getUTCRegions;
var timezones = [{
"value": "Dateline Standard Time",
"abbr": "DST",
"offset": -12,
"isdst": false,
"text": "(UTC-12:00) International Date Line West",
"utc": [
"Etc/GMT+12"
]
},
{
"value": "UTC-11",
"abbr": "U",
"offset": -11,
"isdst": false,
"text": "(UTC-11:00) Coordinated Universal Time-11",
"utc": [
"Etc/GMT+11",
"Pacific/Midway",
"Pacific/Niue",
"Pacific/Pago_Pago"
]
},
{
"value": "Hawaiian Standard Time",
"abbr": "HST",
"offset": -10,
"isdst": false,
"text": "(UTC-10:00) Hawaii",
"utc": [
"Etc/GMT+10",
"Pacific/Honolulu",
"Pacific/Johnston",
"Pacific/Rarotonga",
"Pacific/Tahiti"
]
},
{
"value": "Alaskan Standard Time",
"abbr": "AKDT",
"offset": -8,
"isdst": true,
"text": "(UTC-09:00) Alaska",
"utc": [
"America/Anchorage",
"America/Juneau",
"America/Nome",
"America/Sitka",
"America/Yakutat"
]
},
{
"value": "Pacific Standard...