为什么Date()。getHours()有时会返回布尔值True?

时间:2018-10-04 03:21:38

标签: javascript date google-apps-script

我正在使用Google Apps脚本尝试在工作时间内发送自动电子邮件。为此,我使用一些Date函数来获取当前日期,小时,分钟等。

  var nowH=new Date().getHours();
  var nowD=new Date().getDay();
  var nowM=new Date().getMinutes();
  Logger.log('Day: ' + nowD + ', Hour: ' + nowH + ', Min: ' + nowM )

当我运行它时,它运行良好。例如,它当前返回:

[18-10-04 13:18:02:743 AEST] Day: 4, Hour: 13, Min: 18

所以看起来它工作正常,但是当我使用if语句时,时机似乎已到。我决定也将其中一些打印在HTML电子邮件中:

+ '<br>Debug: Day: ' + nowD + '  Hour: ' + nowH + '  Min:  ' + nowM

令我惊讶的是,我得到了类似的东西:

Debut: Day: 4 Hour: true Min: 18

看起来'nowH'小时数据突然变成了'True'。在if语句之前或在电子邮件中添加此消息之前,我没有其他时间引用

是否有任何明显的原因可能会将其更改为布尔值?

1 个答案:

答案 0 :(得分:0)

正如@Jaromanda X所建议的那样,它似乎是单个=号,似乎改变了'nowH'的值。

我通过添加具有相同3个字段的单独的记录器进行了测试。

更改前: if(( nowH = 10 && nowM> 25 && nowM <35 && nowD!= 6 && nowD!= 0)||(nowH> = 10 && nowH <= 17 && nowM <5 && nowM > 58 && nowD!= 6 && nowD!= 0))

  

[18-10-04 13:47:02:337 AEST]天:4,小时:13,最小值:47

     

[18-10-04 13:47:02:338 AEST]第2天:4,小时2: ,最小2:47

更改后: if((<< strong> nowH == 10 && nowM> 25 && nowM <35 && nowD!= 6 && nowD!= 0)||(nowH> = 10 && nowH <= 17 && nowM <5 && nowM> 58 && nowD!= 6 && nowD!= 0))

  

[18-10-04 13:47:02:337 AEST]天:4,小时:13,最小值:47

     

[18-10-04 13:47:02:338 AEST]第2天:4,小时2:13 ,最小2:47