首页 > 解决方案 > Google App Script:如果时间超过一小时,则将单元格设置为空白

问题描述

在此电子表格中:https ://docs.google.com/spreadsheets/d/1pExqHJQubnSPDKczkF9HMA2QN1cxTYmzyewQdugDRYs/edit#gid=1512058574

我有normal& epoch time

在此处输入图像描述

如果它们超过一小时,我正在寻找清除NormalTime和细胞。EpochTime

所以我写了这个脚本来删除超过一小时的单元格:

function removeOldProcessTime() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Time");
  var processTime = sheet.getRange("B2:B").getValues();
  var now = new Date();
  var ONE_HOUR = 60 * 60 * 1000; /* ms */
  var oneHourAgo = now - ONE_HOUR;

      for (var i = 0; i < 300; i++) 
    {
      if(processTime[i] < oneHourAgo)
      {
        sheet.getRange(i + 2, 1).setValue('');
        sheet.getRange(i + 2, 2).setValue('');
      }
    }
}

但是,当我运行时,只删除了第 8 行:

在此处输入图像描述

我究竟做错了什么?

要求: 我希望删除超过一小时的单元格。

数据:

NormalTime  EpochTime
8/24 11:27:34 AM    1566671254626
8/24 11:50:43 AM    1566672643507
8/24 3:27:34 PM 1566685654609
8/24 5:27:34 PM 1566692854531
8/24 6:27:34 PM 1566696454446
8/24 8:27:34 PM 1566703654460
8/24 9:27:34 PM 1566707254819
8/24 10:27:34 PM    1566710854416

标签: javascriptgoogle-apps-script

解决方案


看起来我需要格式化column B为数字格式0。GAS 会自动将单元格转换为日期,因此在脚本中,它会将EpochTime日期视为正常格式化的日期,并且无法将其转换回Epoch时间


推荐阅读