亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript 中的 If 條件存在一些問題

JavaScript 中的 If 條件存在一些問題

子衿沉夜 2023-07-29 13:49:28
如果有人在規定時間之前和之后登記出席,我想發送一封電子郵件。辦公室早上 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>";}
查看完整描述

3 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

我會遵循 JG 的建議并指定一個日期,但你沒有得到預期結果的原因是你的 if 條件不正確。


officehour >= 08 || officemin >=30如果 officehour 為 8 或以上,或者 officemin 為 30 或以上,則為 true。


這是一個真值表


| Officehour | Officemin   |officehour >= 08 | officemin >=30 | result  |

|:----------:|:-----------:|:---------------:|:--------------:|:--------|

| 7          |        45   |    false        |  true          | true    |

| 8          |        15   |    true         |  false         | true    |

| 7          |        15   |    false        |  false         | false   |

您可能想要更多類似的東西


(officeHour > 8 || (officeHour == 8 && officemin > 30))


查看完整回答
反對 回復 2023-07-29
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

問題是在這種情況下:

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

即使條件的第一部分為假,第二部分仍然可以為真,這使得整個表達式為真。具體來說,如果時間的分鐘部分為 30 或更多,則無論小時部分是多少,條件都為真。同樣,如果小時部分為 8 或更大,則無論分鐘部分是什么,條件都為真。

你需要立即查看整個時間指示,看看它是否在8點30分之前。一種方法是將時間分量轉換為 4 位數字 (hhmm) 并進行比較:

if (officehour * 100 + +officemin >= 830) {

請注意,+前面officemin是一元加號,officemin如果它是字符串,則它會轉換為數字。如果officehour是一個字符串,它已經通過乘法轉換為數字。


查看完整回答
反對 回復 2023-07-29
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

首先嘗試將您的辦公室開始時間定為日期。

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

如果這不起作用,請將此行添加到最后以進行故障排除

console.log("%s : %s",officehour, officemin);



查看完整回答
反對 回復 2023-07-29
  • 3 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號