我有一个Google工作表,其中包含一些日期值和其他信息的行要放置在gCal上。
日期
2019年9月4日
2019年9月6日
2019年9月5日
我正在尝试运行一个循环,该循环将仅拉出等于futureDate的日期(今天加上三天,当前是09/05/2019)
如果我使用<=或=>,它可以正常工作。拉正确的日期并将其放在我的日历上。我无法获得与futureDate相同的工作。我花了好几个小时认为它与日期格式有关,但是<=也不起作用。我在这里想念什么?
var today = new Date();
var futureDate = new Date();
futureDate.setDate(today.getDate()+3);
for(var i = 0; i<data.length; i++){
if(data[i][11] == futureDate) {
cal.createEvent(data[i][0], data[i][1], data[i][2], {location: data[i][3], description: data[i][10]}).setColor(data[i][5]);
//This one works and returns all dates that are not equal to futureDate
if(data[i][11] <= futureDate) {
cal.createEvent(data[i][0], data[i][1], data[i][2], {location: data[i][3], description: data[i][10]}).setColor(data[i][5]);
我今天仅需要09/05/2019即可返回,因为今天是09/02/2019。 (今天+ 3天)
答案 0 :(得分:0)
这可能是由于new Date()
中的小时和分钟造成的。
我不知道data[i][11]
中日期的格式。但是我在工作表A1
上设置了=today()+3
。
然后我将该值与您脚本中的futuredate
进行了比较:
var today = new Date();
var futureDate = new Date();
futureDate.setDate(today.getDate()+3);
日志显示如下:
脚本值:Thu Sep 05 17:03:10 GMT+00:00 2019
表值:Thu Sep 05 00:00:00 GMT+00:00 2019
编辑
解决方法:
var today = new Date();
var futureDate = new Date();
futureDate.setDate(today.getDate()+3);
futureDate.setHours(0,0,0,0);