我有这个非常简单的 4 行代码来从 Google Apps 脚本检索 google 表格中的持续时间值。该工作表是空白的,并且仅具有此测试的值。
function myFunction() {
var my_ss = SpreadsheetApp.getActiveSpreadsheet();
var my_sh = my_ss.getSheetByName("test");
var my_value = my_sh.getRange("A1").getValue();
console.log(my_value);
}
当我在新的运行时 V8 中运行它时,我得到了 5 分钟的良好持续时间(GMT 很差,但我不使用它)。但是由于 V8 上当前的错误,我们无法使用控制台来开发数组和对象,我将脚本降级为 Apps script Legacy,当我执行完全相同的代码时(我的意思是,除了降级环境与运行菜单),然后我得到了良好的 GMT,但持续时间错误!我的时间是 55 分 39 秒,而不是 5 分钟! 我检查了应用程序脚本 V8、应用程序脚本旧版和 google 表格中的时区,每个地方都是相同的,“GMT+01:00 巴黎”。
更奇怪的是:这个测试实际上是根据 2019 年 8 月创建的原始文件的副本执行的。在原始文件中,我得到了相反的行为。我通过应用程序脚本遗留获得了良好的值(value),但通过运行时 V8,我获得了不同的值(我得到了 23:14:21 而不是 00:05:00)。
还有其他人遇到过这种行为吗?您知道如何在新文件上运行旧版应用程序脚本而不会出现这些问题吗?谢谢。
最佳答案
作为解决方法,您可以使用 getDisplayValue()相反:
var my_value = my_sh.getRange("A1").getDisplayValue();
然后,根据这个值,您可以构造一个您喜欢的日期对象。
关于date - 从 Apps 脚本 V8 和旧版中的 google 工作表检索到不同的日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63577394/