【问题标题】:Google sheets custom function returning wrong time difference谷歌表格自定义函数返回错误的时差
【发布时间】:2015-08-25 21:39:46
【问题描述】:

我正在为谷歌表格编写自定义函数。 一部分应该计算两个不同时间的增量。

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

    return output;
  }

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

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

而不是

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

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

你能指出我做错了什么吗?

【问题讨论】:

    标签: javascript date google-sheets


    【解决方案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
    

    【讨论】:

    • 哦,我在想我忘记了一些非常愚蠢的事情。谢谢。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多