繁体   English   中英

Google Script等于日期吗?

[英]Google Script equal to date?

我正在创建一个新的电子表格,该电子表格将提醒我一个星期的审核日期。 我正在尝试做一个非常基本的测试,以检查从今天开始的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>";
    }
  }
}

调试时,这些值完全相同:

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

但是,这并没有注册为匹配项,这是为什么,我该如何解决? 最后。 有些日期具有不同的时区,例如:。Wed May 07 2014 00:00:00 GMT + 0100(BST)有什么方法可以只检查日期?

非常感谢,

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

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

请注意,在与><和变体进行比较时,它确实可以工作(因为它使用valueOf )。

在比较中,应该在每个部分中使用.getTime() ,因为有2个不同的对象,即使它们的值相等也永远不会相等。

所以这种情况应该起作用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM