谷歌脚本 - "如果"比较不起作用

时间:2017-10-26 09:36:13

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

如果列B1 + 2days中的日期大于today,我想保护其他用户的文档。

我对保护部分没有任何问题,但我无法通过一些我无法理解的奇怪理由来使用IF语句。

这是我比较日期的脚本:

ss = SpreadsheetApp.getActiveSheet();
send_date = ss.getRange("B1").getValue();
  limit = new Date(send_date.setDate(send_date.getDate()-2))
  limit.setHours(0,0,0,0)
  day0 = new Date();
  day0.setHours(0,0,0,0)
  ss.getRange("D1").setValue(day0);
  ss.getRange("D2").setValue(limit);
  ss.getRange("D3").setValue(limit>day0);
  ss.getRange("D4").setValue(limit<=day0);
  if (day0>limit) { ss.getRange("C1").setValue("can be edited");}
  else if (day0<=limit) { ss.getRange("C1").setValue("cannot be edited");}

我将小时/分钟/秒等设置为0,因为我只需要逐日比较日期。

运行脚本后会发生什么?

例如,if B1 = '2017-10-24',D1设置为今天(&#39; 2017-10-26&#39;),D2设置为(&#39; 2017-10-22&#39;)。< / p>

D3,limit>day0比较获得值FALSE,D4 limit<=day0获得TRUE

到目前为止一直很好,但是当谈到IF语句时,似乎这些比较是相反的。

在此示例中,C1设置为&#39;可以编辑&#39;。

对我来说,这意味着第一次比较返回FALSE,第二次返回TRUE

当我将日期设置为将来的某个日期时(即&#39; 2017-10-30&#39;),D1-D4字段会获得正确的值,但C1设置为&#39;无法编辑&#39; 39;

我会感激任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以比较两个对象(day0limit)。

但是,您可以比较这两个对象的值。例如,使用getTime()

var day0Time = day0.getTime();
var limitTime = limit.getTime();
if (day0Time > limitTime) {
    // do stuff
}
相关问题