为什么带有<=,> =的公式有效但是简单的==无效

时间:2019-09-02 16:40:16

标签: javascript date google-apps-script google-sheets

我有一个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天)

1 个答案:

答案 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);