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

Google Sheets脚本日期加1天无效问题求助

问题排查与解决方案

你的代码问题出在Date对象与数字直接相加的隐式类型转换上:当执行deliveryDate + 1000*60*60*24时,JavaScript会自动将deliveryDate这个Date对象转为字符串,再和数字做拼接操作,得到类似"Wed Mar 08 2023 08:00:00 GMT+0800 (中国标准时间)86400000"的字符串。将这个字符串传给new Date()解析后,依然会回到原日期,导致“加一天”的逻辑失效。

修正方案一:通过时间戳计算

先调用getTime()获取Date对象对应的毫秒级时间戳,再加上一天的毫秒数:

Logger.log('source array - ' + sourceArray[i][8])      
var deliveryDate = new Date(sourceArray[i][8])
Logger.log ('deliveryDate - ' + deliveryDate)
var newDate = new Date(deliveryDate.getTime() + 1000*60*60*24) // 获取时间戳后执行相加
Logger.log ('newDate - ' + newDate)

修正方案二:使用Date对象的setDate方法(更直观)

先复制原日期对象(避免修改原deliveryDate),再调用setDate()将日期设置为当前日期加1:

Logger.log('source array - ' + sourceArray[i][8])      
var deliveryDate = new Date(sourceArray[i][8])
Logger.log ('deliveryDate - ' + deliveryDate)
var newDate = new Date(deliveryDate) // 复制原日期对象
newDate.setDate(newDate.getDate() + 1) // 日期加1
Logger.log ('newDate - ' + newDate)

补充说明

方案二更推荐,因为它会自动处理月末、年末的日期边界问题(比如3月31日加1天会自动转为4月1日),而直接加毫秒数的方式在夏令时切换的地区可能出现误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:24:49