Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌脚本是否等于日期?_Javascript_Date_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 谷歌脚本是否等于日期?

Javascript 谷歌脚本是否等于日期?,javascript,date,google-apps-script,google-sheets,Javascript,Date,Google Apps Script,Google Sheets,我正在创建一个新的电子表格,设置为提前一周提醒我查看日期。我试着做一个非常基本的测试,检查从今天起7天内的日期是否等于电子表格上的日期 调试时,我注意到时间被添加到日期中,因此我将时间设置为00:00:00以尝试获得匹配,但这仍然不起作用 function main(){ var d = new Date(); d.setDate(d.getDate()+7); d.setHours(0,0,0,0); for (var j = 53; j < lastrow-1; j++

我正在创建一个新的电子表格,设置为提前一周提醒我查看日期。我试着做一个非常基本的测试,检查从今天起7天内的日期是否等于电子表格上的日期

调试时,我注意到时间被添加到日期中,因此我将时间设置为00:00:00以尝试获得匹配,但这仍然不起作用

function main(){
  var d = new Date();
  d.setDate(d.getDate()+7);
  d.setHours(0,0,0,0);
  for (var j = 53; j < lastrow-1; j++){
    var Staff = StaffObjects[j];
    var name = Staff.firstName + " " + Staff.surname;
    var onemonth = Staff.oneMonth;
    onemonth.setHours(0,0,0,0);
    if (d == onemonth){
      messagePT2+= name + "is due there one month review on " + onemonth + "<br>";
    }
  }
}
函数main(){
var d=新日期();
d、 设置日期(d.getDate()+7);
d、 设定小时数(0,0,0,0);
对于(var j=53;j上进行一个月的审核;
}
}
}
调试时,值完全相同:

d=2014年3月7日星期五00:00:00 GMT-0000(GMT) 一个月=2014年3月7日星期五00:00:00 GMT-0000(GMT)

然而,这并没有注册为匹配,为什么会出现这种情况,我该如何着手修复这种情况?最后。有些日期有不同的时区,例如:。。2014年5月7日星期三00:00:00 GMT+0100(英国夏令时)有没有办法只检查日期


非常感谢,

比较日期对象是否相等不是这样工作的。最好将它们转换为数字(或字符串)进行比较。试试这个:

if (d.getTime() == onemonth.getTime()){
  //etc
}

请注意,在比较中与
进行比较时,您应该在每个部分中使用
.getTime()
,因为有两个不同的对象,即使它们的值相等,也永远不会相等

因此,这个条件应该起作用:

if (d.getTime() == onemonth.getTime()){

问了几分钟后,我就明白了啊哈!