Google Calendar事件日期运算问题:App Script中Airbnb日程时间偏移失效
问题解决方法
你遇到的问题核心是直接对Date对象做加法运算会触发错误的类型转换:当你写curDate + 2*MILLIS_Offset时,JavaScript会把curDate这个Date对象自动转换成字符串,再和数值拼接成无意义的字符串,传给new Date()时解析失败,最终得到的日期和原日期一致。
正确的做法和你之前成功运行的示例逻辑一致——先获取Date对象的毫秒时间戳,再做数值运算,最后生成新的Date对象。修改后的代码如下:
const MILLIS_Offset = 1000 * 60 * 60 * 24; // 一天的毫秒数 // 直接使用getEndTime返回的Date对象,无需额外new Date()包裹 var curDate = evi.getEndTime(); Logger.log(curDate); // 获取时间戳后做加法,再生成新日期 var offSetDate = new Date(curDate.getTime() + 2 * MILLIS_Offset); Logger.log("Offset time - " + offSetDate);
补充说明:evi.getEndTime()本身就返回标准的Date对象,不需要再用new Date()重新包装,直接调用getTime()拿到毫秒级时间戳,进行加减运算就不会有问题了。
内容的提问来源于stack exchange,提问作者user2500113
相关产品推荐
相关产品推荐

