Как сравнить время и вывести, в зависимости от времени, статус (день, ночь или вечер)? На JavaScript
<p id="time">22:30</p>
<p id="time2">06:00</p>
<p id="textStatus"></p>
<p id="textStatus2"></p>
let textStatus = document.getElementById('textStatus')
let textStatus2 = document.getElementById('textStatus2')
time = document.getElementById('time')
time2 = document.getElementById('time2')
function status() {
if (document.getElementById('time') <= '18:00' && document.getElementById('time') >= '06:00'){
textStatus.innerHTML = 'day'
}else if (document.getElementById('time') >= '18:00' && document.getElementById('time') < '23:00'){
textStatus.innerHTML = 'evening'
}else if (document.getElementById('time') >= '23:00' && document.getElementById('time') < '06:00'){
textStatus.innerHTML = 'night'
}
}
setInterval(status, 100)
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Вы сравниваете значение с элементом DOM. Необходимо взять значение из элемента и его сравнивать. Т.к. у вас значение внутри элемента, можно воспользоваться свойством innerHTML(Оно возвращает текст из HTML элемента) или innerText
let textStatus = document.getElementById('textStatus')
let textStatus2 = document.getElementById('textStatus2')
time = document.getElementById('time').innerHTML // <- !!!
time2 = document.getElementById('time2')
// В функции мы уже обращаемся к переменной, а не ищем каждый раз элемент в DOM дереве
function status() {
if (time <= '18:00' && time >= '06:00'){
textStatus.innerHTML = 'day'
}else if (time >= '18:00' && time < '23:00'){
textStatus.innerHTML = 'evening'
}else if (time >= '23:00' && time < '06:00'){
textStatus.innerHTML = 'night'
}
}