3 回答
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
我會(huì)遵循 JG 的建議并指定一個(gè)日期,但你沒有得到預(yù)期結(jié)果的原因是你的 if 條件不正確。
officehour >= 08 || officemin >=30如果 officehour 為 8 或以上,或者 officemin 為 30 或以上,則為 true。
這是一個(gè)真值表
| 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))
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
問題是在這種情況下:
if (officehour >= 08 || officemin >=30){即使條件的第一部分為假,第二部分仍然可以為真,這使得整個(gè)表達(dá)式為真。具體來說,如果時(shí)間的分鐘部分為 30 或更多,則無論小時(shí)部分是多少,條件都為真。同樣,如果小時(shí)部分為 8 或更大,則無論分鐘部分是什么,條件都為真。
你需要立即查看整個(gè)時(shí)間指示,看看它是否在8點(diǎn)30分之前。一種方法是將時(shí)間分量轉(zhuǎn)換為 4 位數(shù)字 (hhmm) 并進(jìn)行比較:
if (officehour * 100 + +officemin >= 830) {請(qǐng)注意,+前面officemin是一元加號(hào),officemin如果它是字符串,則它會(huì)轉(zhuǎn)換為數(shù)字。如果officehour是一個(gè)字符串,它已經(jīng)通過乘法轉(zhuǎn)換為數(shù)字。
TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先嘗試將您的辦公室開始時(shí)間定為日期。
var OfficeStart = new Date(mainSheet.getRange(j,2).getValue());
如果這不起作用,請(qǐng)將此行添加到最后以進(jìn)行故障排除
console.log("%s : %s",officehour, officemin);添加回答
舉報(bào)
