简体   繁体   中英

get client's GMT offset in javascript

how can I get the GMT offset in javascript of the client?

new Date().getTimezoneOffset(); returns the difference from UTC. Is there a way I can calculate the GMT offset from that?

By GMT offset, I mean as in -5 for eastern standard time.

new Date().getTimezoneOffset(); returns the difference from UTC. Is there a way I can calculate the GMT offset from that?

The timezone offset is the difference from GMT in minutes (see ECMA-262 §15.9.5.26 ). The sign is the reverse of ISO 8601, but it's easily converted to hours and minutes with a more standard sign:

function getTimezoneOffset() {
  function z(n){return (n<10? '0' : '') + n}
  var offset = new Date().getTimezoneOffset();
  var sign = offset < 0? '+' : '-';
  offset = Math.abs(offset);
  return sign + z(offset/60 | 0) + z(offset%60);
}

getTimezoneOffset() // +0800 for UTC/GMT + 8hrs

If you want to determine the IANA timezone designation, you can try pellepim jstimezonedetect , however it works by guessing based on the offset for two dates and may not be correct.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM