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

如何修改Google Sheets脚本为时间戳添加2天?

问题解决:为时间戳增加2天

你的错误原因

new Date()+2的写法无效,是因为对Date对象执行加法时,JavaScript会自动将其转为毫秒级时间戳(从1970年1月1日至今的毫秒数),加2只是给这个数值加了2毫秒,完全达不到“加2天”的效果。

两种正确实现方式

你可以通过以下两种方法实现“当前日期加2天”:

  1. 毫秒数计算法
    先获取当前时间的毫秒数,加上2天对应的毫秒数(2天 = 2×24×60×60×1000 = 172800000毫秒),再转回Date对象:
new Date(new Date().getTime() + 2*24*60*60*1000)
  1. Date对象方法(更直观)
    直接调用setDate方法修改日期值:
const futureDate = new Date();
futureDate.setDate(futureDate.getDate() + 2);

修改后的完整脚本

这里用第二种方法更新你的代码,同时优化了重复的SpreadsheetApp.getActiveSpreadsheet()调用:

function Cal1 () {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const s = ss.getActiveSheet();
  const r = ss.getActiveRange();

  if(s.getName() === "Pipe" && r.getColumn() === 12 && r.getValue() === "2") {
    const row = r.getRow();
    const numColumns = s.getLastColumn();
    const targetSheet = ss.getSheetByName("Called");
    const target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    
    s.getRange(row, 2, 1, numColumns).moveTo(target);
    
    // 生成当前日期加2天的时间戳
    const futureDate = new Date();
    futureDate.setDate(futureDate.getDate() + 2);
    target.offset(0, numColumns).setValue(futureDate);
    
    s.clearContent(row);
  }
}

额外说明

  • 用===代替==是更严谨的相等判断,避免隐式类型转换问题。
  • 如果需要只保留日期(不带时间),可以在设置值前添加:
    futureDate.setHours(0, 0, 0, 0);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:21:04