3 回答

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))

TA貢獻1804條經驗 獲得超7個贊
問題是在這種情況下:
if (officehour >= 08 || officemin >=30){
即使條件的第一部分為假,第二部分仍然可以為真,這使得整個表達式為真。具體來說,如果時間的分鐘部分為 30 或更多,則無論小時部分是多少,條件都為真。同樣,如果小時部分為 8 或更大,則無論分鐘部分是什么,條件都為真。
你需要立即查看整個時間指示,看看它是否在8點30分之前。一種方法是將時間分量轉換為 4 位數字 (hhmm) 并進行比較:
if (officehour * 100 + +officemin >= 830) {
請注意,+
前面officemin
是一元加號,officemin
如果它是字符串,則它會轉換為數字。如果officehour
是一個字符串,它已經通過乘法轉換為數字。

TA貢獻1942條經驗 獲得超3個贊
首先嘗試將您的辦公室開始時間定為日期。
var OfficeStart = new Date(mainSheet.getRange(j,2).getValue());
如果這不起作用,請將此行添加到最后以進行故障排除
console.log("%s : %s",officehour, officemin);
添加回答
舉報