Как сравнить время и вывести, в зависимости от времени, статус (день, ночь или вечер)? На 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'
      }
  }
→ Ссылка