Я считаю, что проблема связана с оператором &&, поскольку я получаю результат, когда переключаю его на ||. Если я оставлю это &&, результат не вернется.
Мой код ниже.
<!DOCTYPE html>
<html>
<body>
<p id = "greeting"></p></center>
<script>
var time = new Date().getHours();
let phrase = "";
if ((time > 6) && (time < 12)) {
phrase = "Good Morning";
} else if ((time > 12) && (time < 18)) {
phrase = "Good Afternoon";
} else if ((time >= 18) && (time <= 6)) {
phrase = "Good Evening";
}
document.getElementById("greeting").innerHTML = phrase;
</script>
</body>
</html>
Как что-то может быть больше 18, но меньше 6? Это невозможно.
Да, определенно упустил из виду, думал об этом странным образом. Спасибо вам за помощь.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш последний оператор if никогда не будет оцениваться как true; time не может быть больше (или равен) 18, в то время как он меньше (или равен) 6. Здесь вы ищете инструкцию OR (||), так как time всегда будет либо после 18:00 (> 18), либо до 6:00 (< 6) - это не может быть одновременно:
else if ((time >= 18) || (time <= 6))
Сказав это, это исправление теперь будет охватывать возможные часы все, а это означает, что последнее условие фактически не имеет значения; если ни один из первых двух операторов if не задействован, будет выполнено указанное выше условие всегда. Таким образом, вы можете просто заменить его на else:
var time = new Date().getHours();
let phrase = "";
if ((time > 6) && (time < 12)) {
phrase = "Good Morning";
} else if ((time > 12) && (time < 18)) {
phrase = "Good Afternoon";
} else {
phrase = "Good Evening";
}
document.getElementById("greeting").innerHTML = phrase;<!DOCTYPE html>
<html>
<body>
<center>
<h2>Individual Tech Proficiency 1</h2>
<h4>Emulator</h4>
<p id = "greeting"></p>
</center>
</body>
</html>Следует просто удалить последний оператор else if и превратить его в else, нет смысла, если есть проверка на оставшиеся часы
Собственно, учитывая, что это последнее условие if теперь охватывает все возможные сценарии, это хороший момент. Я только что обновил свой ответ, чтобы упомянуть об этом.
Я ценю помощь, спасибо. Итак, моя цель - найти временное окно с 6 до 12, с 12 до 18, с 18 до 6 утра. Есть ли лучший способ сделать это? Я попытался найти промежуточный оператор с диапазоном, но не смог ничего понять. Я знаю, как подойти к этому на Python, но не на JS.
Почему
&&виноват? Видно, это твои условия ...