2015-10-16 3 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

Также я думаю, что вы ищете ['&&' operator] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators) – Pointy

+0

dayNow = 0 просто устанавливает dayNow до 0 – djechlin

ответ

1

Вы можете создать довольно сложные условия, используя &&, || для И, ИЛИ:

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

Если вы хотите использовать несколько условий, если вы должны использовать

& & для И

Или

|| для ИЛИ

Как

Если (condition1 == 5 & & condition2> 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>'); 
Смежные вопросы