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

如何在Apps Script中处理Google表单时间戳并与当前日期比较

Google Apps Script日期对比的实用方案

不用手动截字符串,用内置方法搞定

表格里的TO_DATE(INT(A1))本质是把带时间的日期转成当天的起始时刻(00:00:00),在Apps Script里直接用Date对象或内置工具就能实现,比手动截取靠谱多了。

两种简单实现方式

方式一:重置时间部分

从表格拿过来的时间戳本身就是Date对象,直接把时、分、秒、毫秒全设为0,就得到了当天的起始时间:

// 从表格单元格获取时间戳(已经是Date类型)
const timestamp = sheet.getRange("A1").getValue();
// 复制原日期,避免修改原对象
const dateOnly = new Date(timestamp);
// 重置到当天0点
dateOnly.setHours(0, 0, 0, 0);

// 当前日期同样处理
const today = new Date();
today.setHours(0, 0, 0, 0);

// 开始对比
if (dateOnly.getTime() === today.getTime()) {
  console.log("是同一天");
} else if (dateOnly < today) {
  console.log("比今天早");
} else {
  console.log("比今天晚");
}

方式二:用Utilities格式化日期

借助Apps Script的Utilities.formatDate()把日期转成纯日期字符串,再转回Date对象,逻辑和表格函数更贴近:

const timestamp = sheet.getRange("A1").getValue();
const timeZone = Session.getScriptTimeZone();
// 转成YYYY-MM-DD的纯日期字符串
const dateStr = Utilities.formatDate(timestamp, timeZone, "yyyy-MM-dd");
const dateOnly = new Date(dateStr);

// 当前日期同样处理
const todayStr = Utilities.formatDate(new Date(), timeZone, "yyyy-MM-dd");
const today = new Date(todayStr);

// 对比逻辑和上面一样
if (dateOnly.getTime() === today.getTime()) {
  console.log("日期匹配");
}

为啥别用字符串截取?

手动用substring拿日期部分很容易踩坑——不同地区的日期格式可能不一样(比如有的是月/日/年,有的是日/月/年),直接操作Date对象或者用内置工具类,能自动适配时区和格式,不会出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:12:13