Google表单自定义函数返回错误的时差

时间:2015-08-25 13:30:48

标签: javascript date google-sheets

我正在为Google表格编写自定义功能。 一部分应计算两个差异时间的增量。

  function timeOut(input) {
    var difference = input[0][1]-input[0][0];
    var output = new Date(difference);

    return output;
  }

变量差异包含零。 问题是新的Date(0)正在返回

  

Thu Jan 01 1970 01:00:00 GMT + 0100(CET)

而不是

  

1970年1月1日星期四00:00:00 GMT + 0100(CET)

所以9小时减去9小时的差异是1小时,这显然是错误的。

你能指出我,我做错了吗?

2 个答案:

答案 0 :(得分:1)

00:00:00 GMT+0100将是-1小时,因为它是+0100,时区很重要,01:00:00 GMT+0100确实是0小时。

如果您想获得GMT,可以使用toGMTString()

var date = new Date(0);
alert(date.toGMTString()); // prints Thu, 01 Jan 1970 00:00:00 GMT

答案 1 :(得分:0)

实际上显然是正确的,在GMT时间的00:00:00,在+0100时间是01:00:00。

如果您需要GMT时间,您可以:

var GMTTime = new Date( -new Date().getTimezoneOffset() * 60000 );