Date.getTimezoneOffset倒置?

时间:2013-02-03 04:23:59

标签: javascript date timezone-offset

我的服务器有一个JSON响应,只需几秒钟即可获得UTC Unix时间戳。我正在将其解析为将在图表中使用的JavaScript日期(在用户的语言环境中显示时间)。

我显然必须将我的时间戳(以UTC格式)哄骗到浏览器的语言环境中,所以我写了一个函数,在浏览器的语言环境中创建一个新的Date,在其上调用getTimezoneOffset()得到根据{{​​3}},当前语言环境中的“以分钟为单位的偏移量”将两者都转换为毫秒,并返回总和。现在我在用户的语言环境中有一个JavaScript友好的Unix时间戳。

但是,我没有。

事实证明,(new Date()).getTimezoneOffset()在GMT-5中返回(正)300,在GMT + 2中返回-120。为什么偏移是倒置的?我原以为偏移量与时区的符号相符 - 即:我需要减去300分钟才能达到GMT-5,并且需要120分钟才能达到GMT + 2。相反,我必须减去getTimezoneOffset

返回的值

1 个答案:

答案 0 :(得分:6)

不。

spec (§15.9.5.26)说:

  

15.9.5.26 Date.prototype.getTimezoneOffset()

     

以分钟为单位返回本地时间和UTC时间之间的差异。

     
      
  1. t 成为这个时间值。
  2.   
  3. 如果 t 是NaN,请返回NaN。
  4.   
  5. 返回( t - LocalTime(t))/ msPerMinute
  6.