JavaScript 中的 If 条件存在一些问题

如果有人在规定时间之前和之后登记出席,我想发送一封电子邮件。


办公室早上 8:30 开始上班,但我对时间和分钟有疑问。即使时间是上午 7:45,电子邮件也会延迟触发,我哪里出错了?


var startTime = mainSheet.getRange(j,2).getDisplayValue();

var OfficeStart = mainSheet.getRange(j,2).getValue();

var officehour = OfficeStart.getHours();

var officemin = OfficeStart.getMinutes();

if (officehour >= 08 || officemin >=30){

var startTime = startTime+ "<font color='Red'> ⬤ Late </font>";

}

else{

var StartTime =startTime +"<font color='Green'> ⬤ OnTime </font>";

}


子衿沉夜
浏览 109回答 3
3回答

梦里花落0921

我会遵循 JG 的建议并指定一个日期,但你没有得到预期结果的原因是你的 if 条件不正确。officehour >= 08 || officemin >=30如果 officehour 为 8 或以上,或者 officemin 为 30 或以上,则为 true。这是一个真值表| Officehour | Officemin&nbsp; &nbsp;|officehour >= 08 | officemin >=30 | result&nbsp; ||:----------:|:-----------:|:---------------:|:--------------:|:--------|| 7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; 45&nbsp; &nbsp;|&nbsp; &nbsp; false&nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; true&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | true&nbsp; &nbsp; || 8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; 15&nbsp; &nbsp;|&nbsp; &nbsp; true&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; false&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| true&nbsp; &nbsp; || 7&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; 15&nbsp; &nbsp;|&nbsp; &nbsp; false&nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; false&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| false&nbsp; &nbsp;|您可能想要更多类似的东西(officeHour > 8 || (officeHour == 8 && officemin > 30))

三国纷争

问题是在这种情况下:if&nbsp;(officehour&nbsp;>=&nbsp;08&nbsp;||&nbsp;officemin&nbsp;>=30){即使条件的第一部分为假,第二部分仍然可以为真,这使得整个表达式为真。具体来说,如果时间的分钟部分为 30 或更多,则无论小时部分是多少,条件都为真。同样,如果小时部分为 8 或更大,则无论分钟部分是什么,条件都为真。你需要立即查看整个时间指示,看看它是否在8点30分之前。一种方法是将时间分量转换为 4 位数字 (hhmm) 并进行比较:if&nbsp;(officehour&nbsp;*&nbsp;100&nbsp;+&nbsp;+officemin&nbsp;>=&nbsp;830)&nbsp;{请注意,+前面officemin是一元加号,officemin如果它是字符串,则它会转换为数字。如果officehour是一个字符串,它已经通过乘法转换为数字。

手掌心

首先尝试将您的办公室开始时间定为日期。var&nbsp;OfficeStart&nbsp;=&nbsp;new&nbsp;Date(mainSheet.getRange(j,2).getValue());如果这不起作用,请将此行添加到最后以进行故障排除console.log("%s&nbsp;:&nbsp;%s",officehour,&nbsp;officemin);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript