You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script判断日期是否落在两日期区间且忽略时间

问题原因

你当前的对比逻辑是基于包含时分秒的完整时间戳计算,即便是同一天的两个日期,只要时间不同,getTime()返回的数值就会存在差异,导致匹配失败。

解决方法

新增一个清除日期对象时间部分的工具函数,将所有参与对比的日期统一转换为当天0点的时间戳后再做比较,即可忽略时间维度只对比日期。

步骤1:新增日期时间清零函数

// 传入Date对象,返回该日期当天0点的毫秒时间戳
function getPureDateTimestamp(date) {
  const pureDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());
  return pureDate.getTime();
}

步骤2:修改原有对比逻辑

先将fromdt、todt的时间清零,再在循环中把要对比的calldate(也就是vA[k][0])也做时间清零后再判断区间:

function onFormSumbit(e) {
  //Timestamp   1Name   1From Date  3.From Time 4To Date    5To Time    6Reason                     
  var name = e.source.getActiveSheet().getRange(e.range.rowStart,2).getValue();
  var fromdt = e.source.getActiveSheet().getRange(e.range.rowStart,3).getValue();
  var fromtime = e.source.getActiveSheet().getRange(e.range.rowStart,4).getValue();
  var todt = e.source.getActiveSheet().getRange(e.range.rowStart,5).getValue();
  var totime = e.source.getActiveSheet().getRange(e.range.rowStart,6).getValue();
  var reason = e.source.getActiveSheet().getRange(e.range.rowStart,7).getValue();
  if (todt == "") {todt = fromdt};
  if (fromtime == "") {fromtime = 9};
  if (totime == "") {totime = 19};

  // 把起止日期的时间部分清零
  const fromTs = getPureDateTimestamp(fromdt);
  const toTs = getPureDateTimestamp(todt);

  var empss = SpreadsheetApp.openById("xxx"); // service calls 
  var sltsht = empss.getSheetByName("Slots");
  var vA = sltsht.getDataRange().getValues();//first column is a date with some time
  for (k=1;k<vA.length;k++){
    // 把待对比的日期时间清零后再比较
    const callDateTs = getPureDateTimestamp(vA[k][0]);
    if (vA[k][3] == name && callDateTs >= fromTs && callDateTs <= toTs){
      // 原有业务逻辑
      //do something
    }
  }
}

注意事项

  • 确保你从表格中通过getValue()获取的fromdt、todt、calldate都是谷歌表格识别的日期格式,返回的是原生Date对象而非字符串,如果是字符串格式需要先通过new Date(日期字符串)转换为日期对象再调用工具函数。

内容的提问来源于stack exchange,提问作者arul selvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:00:03