使用谷歌应用脚 本操纵持续时间

问题描述 投票:-1回答:1

我有以下非常简单的说明:

// in the my_sheet cell A3, there is  the duration "00:01:00" for one minute, typed by user
var my_time = my_sheet.getRange("A3").getValue();
var hms = Utilities.formatDate(my_time ,"GMT", "HH:mm:ss");

当我从谷歌应用程序脚本调试器本身运行这个时,我无法成功在两个变量中获得相同的时间......相反,我有:

my_time | Date (1473042018) | Sat Dec 30 1899 00:01:00 GMT+0100 (CET) (OK regarding A3)
hms | String | "23:01:00"

编辑:正如@Rubén的评论中所述,这里是我所做的真实文件/元素:所以,这是用于测试的public_file;这里的代码(可通过文件访问):

function myFunction() {
  var my_sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var result_cell = my_sheet.getRange("A4");
  result_cell.clear();

  var my_time = my_sheet.getRange("A3").getValue();
  var hms = Utilities.formatDate(my_time ,"GMT", "HH:mm:ss");
  result_cell.setValue(hms);}

我试图做的就是输入一个持续时间(在A3中输入的内容是“00:01:00”),我尝试在Google Apps脚本中的变量中获取此持续时间,我没有成功去做。我不明白为什么当输入的时间是“00:01:00”时,A3.getValue()会返回“星期六30 1899 00:51:39 GMT + 0100(CET)”。我预计“1899年12月30日星期六00:01:00 GMT + 0100(CET)”

非常感谢你的帮助!

下面是文件/代码/变量/结果的捕获:capture

javascript date google-apps-script duration
1个回答
0
投票

Google表格和Google Apps脚本不使用相同的基值来计算日期时间值,因此使用getDisplayValue()获取持续时间比使用getValue()和使用JavaScript / Google Apps脚本服务类和方法更简单。

例:

A1单元格显示值:23:01:00 公式栏显示值:23:01:00.000

脚本:

function myFunction() {
  var duration = SpreadsheetApp.getActiveSheet().getRange("A1").getDisplayValue();
  Logger.log(duration);
}

日志:

[17-12-23 12:33:02:470 CST] 23:01:00
© www.soinside.com 2019 - 2024. All rights reserved.