Google电子表格脚本 - 将日期作为数字

时间:2016-07-31 14:18:15

标签: javascript google-apps-script google-sheets

我的工作表中有一些格式为Duration的数字字段(这会导致它们被视为一天的分数)。如果我在公式中使用它们,它们将被正确地视为数字。

我还需要在计算其总和的脚本中使用它们。但是在脚本中,它们作为Date对象出现。有没有办法迫使他们作为数字出现?如果没有,我如何正确地将日期转换为数字?使用getUTCHours / getUTCMinutes / getUTCSeconds几乎可以正常工作,但它会将小时数截断为24,并且会失去精度(即使我使用毫秒,但损失较小)。 Date对象似乎有年份= 1899,这特别奇怪。

目前我确定了这一点,但我不确定它是否足够可靠(长数为getTime为零):

  if (val instanceof Date) {
    return (val.getTime() + 2209161600000) / 24 / 3600 / 1000;
  }

1 个答案:

答案 0 :(得分:1)

尝试使用函数cell.getDisplayValue()。它会将时间格式化的单元格转换为文本,如'13:00',然后您可以使用

和加号将其转换为适当的数字:    var cell = sheet.getRange(myRange); var strDisplay = cell.getDisplayValue(); var numVal = + strDisplay.substring(0, 2);