最近我切换到了Google脚本中的V8运行时,我遇到了一个奇怪的问题。(我似乎无法以最小的格式复制。)
我的Google允许用户输入(单元格) 'work_start‘时间和'work_end’时间。现在我选择了"9:30“和"18:00”。使用旧的运行时,这将变成:
然而,当我切换到V8运行时,我得到了以下内容:
如果我立即再次运行它,在旧的运行时,它可以追溯到9:30和18:00。
我已经多次检查了我的代码,并将这些值设置了一次(作为全局值),但我从不更改它们。我只使用/读它们。我甚至在主函数的第一行设置了一个断点。
我建立了一个新的项目,并试图重新创建问题,但由于某种原因,问题没有出现在新的工作表。我也尝试过清除这两个单元格的格式。
接下来,我尝试了最后一件事。我将代码从全局空间移出并放入一个函数中,然后在下一行上有一个断点,以便检查变量:
function Main() {
var work_start = cal.getRange("G1").getValue(); // work start time
var work_end = cal.getRange("G2").getValue(); // work end time
var test = 0; // SET A BREAKPOINT HERE
...
}这也给了我同样奇怪的结果: 8:39:21和17:09:21。(再说一次,只有当我的程序的一部分。在一张新的表格中,它给出了9:30和6:00,正如预期的那样。)
甚至不知道如何开始寻找这个错误的答案,所以任何帮助或指导都将受到感谢。
发布于 2020-06-01 13:40:32
我还可以体验到单元格中的值与Apps脚本读取的值之间的50‘39’时间差。启用或禁用V8没有任何区别。
这是因为Sheet使用日期1899-12-30 0:00:00作为引用,而Apps脚本(以及大多数谷歌服务)使用Unix时间 (从1970-1-1 00:00:00 UTC开始)。闰秒在Unix时间内被忽略,所以可能是这样。
作为解决办法,您可以:
https://stackoverflow.com/questions/62118448
复制相似问题