如何比较Google表格脚本中的时间?

时间:2018-04-11 15:50:06

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

在google工作表中,我循环遍历一系列单元格,然后拆分包含时间的字符串部分。示例:6:40 AM使用以下行从TEST:6:40 AM派生:

text.slice(text.indexOf(":") + 1, text.length);

然后我试着看看这个时间是否与最初调用该函数的单元格旁边的单元格的时间匹配。

var sheetTime = timeSheetRange.getCell(1,1).getValue();
var time = 0;
  for (var i = 1; i <= 30; i++) {
      for (var j = 1; j <= 8; j++) {
          time = getTime(taskRange.getCell(i,j).getValue());
          if (time == sheetTime) {
              return time;
          }
          else {
              return "NO ACTIVITY";
          }
      }
  }

问题在于,当timesheeetTime的值相同时,time不等于sheetTime

同时返回timesheetTime打印出正确的,相同的时间。我有一种感觉,它可能与细胞时间格式有关? 时间正在从这个细胞中读取:

time celll

当sheetTime正在读取此单元格时:

sheetTime cell

那么这里发生了什么?这是格式化我必须变形还是我接近这个错误?感谢。

1 个答案:

答案 0 :(得分:1)

问题是sheetTime是实际时间值。理想情况下,您需要将时间与时间进行比较,但最简单的方法是使用getDisplayValue()(根据Serge insas的建议,在对原始答案的评论中)。

var sheetTime = timeSheetRange.getCell(1,1).getDisplayValue();

作为总体建议,请尝试使用Logger.log()语句尝试调试。您将能够确切地看到脚本正在使用的值。