在javascript中获取客户端的GMT偏移量

时间:2014-06-30 23:25:31

标签: javascript time timezone timezone-offset

如何在客户端的javascript中获取GMT偏移?

new Date().getTimezoneOffset();返回与UTC的差异。有没有办法可以计算GMT的偏差?

按GMT抵消,我的意思是东部标准时间为-5。

1 个答案:

答案 0 :(得分:7)

  

new Date()。getTimezoneOffset();返回与UTC的差异。有没有办法可以计算GMT的偏差?

时区偏移 与GMT的差异(以分钟为单位)(参见ECMA-262 §15.9.5.26)。该标志与ISO 8601相反,但它可以通过更标准的标志轻松转换为小时和分钟:

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

如果您想确定IANA时区指定,可以尝试pellepim jstimezonedetect,但是根据两个日期的偏移进行猜测并且可能不正确。