Я работаю над созданием страницы, которая будет простой для просмотра страницы, которая сообщает пользователю, открыт магазин или закрыт. Я пытаюсь, чтобы он отображал зеленый фон и «да, открыто» или красный фон с «нет, закрыто». Расписание меняется каждый день недели, а в некоторые дни магазин закрывается в полдень и открывается позже. У меня возникают проблемы с корректным изменением фона и текста в зависимости от времени.
Я пытался реализовать решения из аналогичной проблемы этого пользователя , но я не мог заставить их работать , Я испробовал как решение от «Арнав Аггарвал», так и решение под ним от «Даркиса». Arnav's использует флаг, установленный в false и if.
При использовании флага, кажется, не заботятся о часах, только о дне, скажем, возможно, я просто делаю это неправильно. Ниже приведен фрагмент кода, но у меня также есть код, настроенный на codepen.io
let t = document.getElementById("Status");
t.innerHTML = "No";
document.body.style.backgroundColor = "red";
var q = new Date();
var hour = q.getHours();
var day = q.getDay();
function isBetween(testNumber, lowerLimit, upperLimit) {
return testNumber >= lowerLimit || testNumber <= upperLimit;
}
var flag = false;
if (day === 2 && (isBetween(hour, 0, 5) || isBetween(hour, 6, 7))) {
flag = true;
}
if (flag) {
let t = document.getElementById("Status");
t.innerHTML = "Yes";
document.body.style.backgroundColor = "green";
}
#status {width: 3em}
<div id="Status"></div>
Для меня код Арнава кажется мне более быстрым, поскольку он более понятен в происходящем, и я не очень хорошо знаком с циклами и массивами, такими как Даркиса ответить.
Я также попытался сделать серию операторов if else, но они не сработают, если не будет [6] или субботы.
Код с использованием решения Arnav's Flag
Код с использованием сложенного If Else