Date.getTimezoneOffset返回非整数值

时间:2013-10-27 12:33:07

标签: javascript timezone dst

我的代码中的以下行:

var timezoneoffset = new Date().getTimezoneOffset();

返回-120.14933013916015。

我原以为返回值为120,一般情况下,该值始终为整数。

任何人都能解释一下吗?现在看起来我需要对结果执行循环操作。

3 个答案:

答案 0 :(得分:1)

我已经尝试了所有我能想到的,并且无法重现您正在报告的问题。

我唯一能想到的是代码中的其他内容正在修改Date原型。也许您正在使用一些您没有告诉我们的日期/时间库?

请尝试在干净的空控制台中重现问题。

  • 在网址栏中输入about:blank
  • 按F12查看开发人员工具
  • 转到“控制台”标签
  • 在控制台中输入new Date().getTimezoneOffset()

它是否仍显示小数?

  • 如果是,则IE或Windows中存在错误
  • 如果不是,那么您的其他代码中的某些内容就会与Date原型相混淆。

答案 1 :(得分:0)

var timezoneoffset        = new Date().getTimezoneOffset();
var timezoneoffsetinteger = parseInt(timezoneoffset);

变量time timezoneoffsetinteger将等于-120作为整数。我猜你是GMT + 2?

如果您希望GMT +为正面而GMT为负面,那么您需要这样做:

var timezoneoffsetconvert = timezoneoffsetinteger * (-2) / 2

这将返回(对于GMT + 2(-120))120

答案 2 :(得分:0)

时区偏移是与UTC和本地时间不同的结果,此值表示分钟,如果值为负,则偏移量在UTC之前,考虑到这一简单的代码行可以给出你是以小时为单位的传统偏移量。

var offset = (new Date().getTimezoneOffset()/-60);