2015-10-16 214 views
-3

嘿,我希望在零售商店的網站上顯示一個指示符以便打開(非常像Yelp的指示符「立即打開」)。我已經想出瞭如何在每天的設定時間內完成它(例如下文)。如何在if else語句中聲明兩個條件

但是這家店週五的收盤時間不同&星期六,&星期天休息。我希望能找到一種方法來將這些變量也納入這個等式中。

或考慮到這些變化,以使網站上的指標準確。

// JavaScript Document 
var today = new Date(); 
var dayNow = today.getDay(); 
var hourNow = today.getHours(); 
var shopStatus 


if (dayNow = 0) { 
    shopStatus = 'See you on Monday'; 
} 

// Regular Hours for Monday - Thursday 
// night time message 
else if (hourNow > 21) { 
     dayNow < 4 
     shopStatus = 'Open at 7am'; 
} 
// closed hours message 
else if (hourNow >18) { 
     dayNow < 5 
     shopStatus = '<p class="red">Closed Now</p>'; 
} 
// 6:30pm closing soon message 
else if (hourNow > 17.5) { 
     dayNow < 4 
     shopStatus = 'Closing soon'; 
} 
// Mon - Thurs. open hours message 
else if (hourNow > 7) { 
     dayNow < 4 
     shopStatus = 'Open Now'; 
} 
// 6:30am opening soon 
else if (hourNow > 6.5) { 
     dayNow < 4 
     shopStatus = 'Opening Soon'; 
} 
document.write('<p>' + shopStatus + '</p>'); 
+3

像'dayNow <4'這樣的聲明什麼都不做。 – Pointy

+0

另外,我認爲你正在尋找[&&'運營商](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators) – Pointy

+0

dayNow = 0只是設置dayNow爲0 – djechlin

回答

1

對於AND,OR,您可以使用&&,||創建相當複雜的條件:

if (dayNow == 0) { 
    shopStatus = 'See you on Monday'; // Sunday - closed 
} 
else if (dayNow == 1) && 
    (hourNow > openingHour) && 
    (hourNow < closeToClose) { // Monday opening hours 
    shopStatus = 'message' ; 
// next tests... 

就我個人而言,我更喜歡另一種方法。用簡單的商店狀態索引創建數組。哦 - 它如何去...

var shopStatus = ["Open", "Closed", "Closing soon!"]; 

檢查與簡單的(不是那麼簡單)測試狀態:

if (
    (dayNow < 6) && (dayNow > 1) // it's not Sun/Mon/Sat 
    && (hourNow < 17.5) && (hourNow > 7) 
    ) // and it's open, OR 
    || (
    (dayNow == 1) || (dayNow == 6) 
    ) { // it's Monday or Saturday 
    document.write('<p>' + shopStatus[0] + '</p>'); 
    // message is "Open" 
} 
else if // I think you are there 

寫下尤其數組索引的每個狀態的所有條件。如果需要,此解決方案非常乾淨並且很容易翻譯。我建議評論所有條件以便於調試。請參閱MDN

0

如果需要多個條件,如果你要使用

& &爲

或者

||爲OR

如果(條件1 == 5 & &條件2> 12){}

請記住,當你比較的條件,你應該總是使用==而不是=

0

好的,所以我想通了,至少現在有效,我試着在我的電腦上切換時鐘,在奇數天測試(星期五&星期六)。讓我知道你的想法;但這在我使用它的網站上工作得很好。

var today = new Date(); 
var dayNow = today.getDay(); 
var hourNow = today.getHours(); 
var shopStatus 

/*dayNow determins if it is Friday, Saturday or Sunday */ 

if (dayNow == 0 || dayNow == 6 && hourNow > 16) { 
    shopStatus = '<p class="orange">See you on Monday'; // Sunday - closed 
} 
// night message 
else if (hourNow > 21 && dayNow < 5 && dayNow > 0) { 
     shopStatus = 'Open at 7am'; 
} 
// Late Friday night message 
else if (dayNow == 5 && hourNow > 21) { 
     shopStatus = '<p class="red">Open at 9am</p>'; 
} 
// insert right after closed message 
else if (dayNow == 5 && hourNow > 14) { 
     shopStatus = '<p class="red">Closed Now</p>'; 
} 
/*Regular Hours for Monday - Thursday 
closed hours */ 

else if (hourNow >18) { 
     shopStatus = '<p class="red">Closed Now</p>'; 
} 
// 6:30pm closing soon 
else if (hourNow > 17.5) { 
     shopStatus = 'Closing soon'; 
} 
// Mon - Thurs. open hours 
else if (hourNow > 7) { 
     shopStatus = 'Open Now'; 
} 
// 6:30am opening soon 
else if (hourNow > 6.5) { 
     shopStatus = 'Opening Soon'; 
} 

document.write('<p>' + shopStatus + ' *</p>');