如何用Google Apps Script判断Google Sheets单元格日期加5天等于今日
问题原因
- JavaScript中的Date属于引用类型,使用
==/===直接对比两个Date对象时,判断的是两个对象是否指向同一个内存地址,而非判断二者代表的时间是否相等。你代码里的newDate5和today是两个独立创建的Date实例,哪怕时间值完全一致,对比结果也会是false。
修复方案
将判断逻辑改为对比两个Date对象的时间戳即可,时间戳是数值类型,直接对比值就会得到正确结果。
修改后代码
function test() { sheet = SpreadsheetApp.getActive(); var today = new Date(new Date().setHours(0,0,0,0)); var weekStartDate = sheet.getRange('B5').getValue().getTime(); var newDate1 = new Date(new Date().setHours(0,0,0,0)); var newDate5 = new Date(new Date().setHours(0,0,0,0)); newDate1.setTime(weekStartDate + (1*24*60*60*1000)); newDate5.setTime(weekStartDate + (5*24*60*60*1000)); // 仅修改判断逻辑,对比两个日期的时间戳 if(newDate5.getTime() == today.getTime()){ var answer = 'Yes'; } else{ var answer = 'No'; } Logger.log(today); Logger.log(newDate1); Logger.log(newDate5); Logger.log(answer); }
内容的提问来源于stack exchange,提问作者Fiona Kwok
相关产品推荐
相关产品推荐

