繁体   English   中英

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

[英]Google sheets custom function returning wrong time difference

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

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

    return output;
  }

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

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

而不是

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

因此9个小时减去9个小时的差就是1个小时,这显然是错误的。

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

00:00:00 GMT+0100将是-1小时,因为它是+0100,时区很重要,01: 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

实际上,这是正确的,在格林尼治标准时间的00:00:00,+ 0100的时间是01:00:00。

如果您需要格林尼治标准时间,则可以:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM