var d = new Date("2020-04-13T00:00:00.000+08:00"); /* midnight in China on April 13th */
d.toLocaleString('en-US', { timeZone: 'America/New_York' });
//=> "4/12/2020, 12:00:00 PM"
// (midnight in China on April 13th is noon in New York on April 12th)
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
console.log(timezone);
console.log(new Date().getTimezoneOffset()/-60) // offset in hours
// Following function can be used to return the UTC offset given a timezone:
const getTimezoneOffset = (timeZone, date = new Date()) => {
const tz = date.toLocaleString("en", {timeZone, timeStyle: "long"}).split(" ").slice(-1)[0];
const dateString = date.toString();
const offset = Date.parse(`${dateString} UTC`) - Date.parse(`${dateString} ${tz}`);
// return UTC offset in millis
return offset;
}
//It can be used like:
const offset = getTimezoneOffset("Europe/London");
console.log(offset);
// expected output => 3600000
getGMT() {
let gmtFigure = new Date().getTimezoneOffset() / -60;
let gmtSign = gmtFigure >= 0 ? '+' : '-';
let gmtlength = this.digits_count(gmtFigure);
let gmt = 'GMT';
if (gmtlength == 1) {
gmt += gmtSign + '0' + Math.abs(gmtFigure);
} else if (gmtlength > 1) {
gmt += gmtSign + Math.abs(gmtFigure);
}
return gmt;
}
digits_count(n) {
var count = 0;
n = Math.abs(n);
if (n >= 1) ++count;
while (n / 10 >= 1) {
n /= 10;
++count;
}
return count;
}
// this example takes 2 seconds to run
const start = Date.now();
console.log('starting timer...');
// expected output: starting timer...
setTimeout(() => {
const millis = Date.now() - start;
console.log(`seconds elapsed = ${Math.floor(millis/1000)}`);
// expected output : seconds elapsed = 2
}, 2000);