Добавить класс в зависимости от времени суток не работает

Привет, я нашел здесь некоторый код и настроил его, чтобы добавить класс в зависимости от времени дня, но он не работает, я видел, как он работает на долю секунды сегодня, но ни один класс не добавляется, и я не знаю почему.

<script type="text/javascript">
jQuery(document).ready(function(){
    var url, hour = new Date().getHours();
    if (hour > 8 && hour < 18) {
        jQuery('body').addClass('day');
    } else if (hour > 18 && hour < 21) {
        jQuery('body').addClass('midday');
    } else if (hour > 21 && hour < 8) {
        jQuery('body').addClass('night');
    }
});
</script>

Вы можете увидеть код в действии здесь: http://www.bbdimension.co.uk/files/wp/ основном идея для текущего региона (время Испании), если его между 08:00 и 18:00 он добавляет класс дня, иначе, если между 18:00 и 21:00 он добавляет класс полудня, и еще, если между 21:00 и 08:00, он добавляет класс ночи.

Я делаю что-то не так, я не гуру JS. Я не мог использовать знак доллара, потому что он конфликтовал с другими вещами на сайте.

1 ответ

Решение
hour = new Date().getHours();

тогда, если вы предупредите час, вы получите 0, потому что getHours() возвращает 0-23

и с тех пор 0 > 21 = false Ваше последнее условие не будет правдой

переписать ваше последнее условие следующим образом

else if (hour > 21 || hour < 8) 

тогда это предупредит "ночь"

Другие вопросы по тегам