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

wor*_*ith 0 javascript time timezone timezone-offset

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

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

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

Rob*_*obG 10

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
Run Code Online (Sandbox Code Playgroud)

如果您想确定IANA时区名称,可以尝试使用pellepim jstimezonedetect,但是它可以根据两个日期的偏移量进行猜测,但可能不正确.