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;
}