javascript - 在 Google 电子表格上花费时间

标签 javascript date time google-apps-script spreadsheet

所以我正在编写一个脚本,需要从 Google 电子表格中读取时间值并使用它。我尝试运行测试函数以确保提取的值正确,但这些值似乎与电子表格中反射(reflect)的值不同。

输入

function testTime(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("TimeSheet");
  var time = sheet.getRange(2,1).getValue();
  //value on the sheet is 10:00:00 AM 
  Logger.log(time);
  Logger.log(time.toTimeString());
}

输出

Sat Dec 30 09:30:59 GMT+07:36 1899
09:54:17 GMT+0800 (HKT)

时间应该是 10:00:00 但显示为 09:54:17,这是第一个奇怪的错误。

其次,我是否可以提取实际值“10:00:00 AM”,或者以更简单的格式“10:00”提取更好的值?

编辑:

我找到了解决第二个问题并以所需格式获取时间的方法。然而,与时间还是有一些奇怪的互动。我添加了 2 行及其各自的输出

所有记录器行

  Logger.log(Utilities.formatDate(time, "GMT+07:37", "HH:mm"));
  Logger.log(Utilities.formatDate(time, "GMT+08:00", "HH:mm"));
  Logger.log(time);
  Logger.log(time.toTimeString());

输出

10:00
10:23
Sat Dec 30 10:00:00 GMT+07:36 1899
10:23:18 GMT+0800 (HKT)

在电子表格设置下,

区域设置 = 美国

时区 = (GMT+08:00) 香港

最佳答案

  1. 如果您想要与电子表格中显示的值完全相同 细胞,使用 var time = sheet.getRange(2,1).getDisplayValue();

  2. 此外,您可以使用以下方法分解长日期/时间字符串 split(" ")方法,然后以您想要的任何方式组合结果数组中的元素。

关于javascript - 在 Google 电子表格上花费时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39718668/

相关文章:

javascript - 面向对象的Javascript : good way to combine prototypal inheritance with private vars?

javascript - 将超链接中的日期值解析为 Javascript 函数

regex - 用正则表达式匹配时间字符串

python - 我无法弄清楚这个时间戳的含义

javascript - React - 将 Prop 传递给 child onClick

javascript - 我可以在使用 setAttribute ("src") 和 getAttribute ("data-src") 加载图像时运行事件吗?

java - 字符串到日期的转换正在浪费时间

php - PHP中减去预定义的时间

javascript - 编写 JQuery If 语句

linux - 找出三个时间戳之间的差异,这三个时间戳不是日期命令接受的格式