Javascript时间检测改变日/夜的背景颜色

时间:2014-10-30 16:16:43

标签: javascript

我想知道是否有人知道我做错了什么。也许根本不可能。

<script>
 var daynight = document.querySelector('header');
    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()

    if (hours >= 6 && hours < 14){
        console.log(avond);
        daynight.classList.add('nacht');
    }
    if(hours < 6 || hours >= 14){
            console.log(dag);
            daynight.classList.remove('nacht');
    } 
</script>

非常感谢提前

3 个答案:

答案 0 :(得分:0)

avonddag是否定义了变量?如果不是,你需要在它们周围添加引号。如果问题仍然存在,请告诉我们控制台窗口是否有任何错误。

至于第二个if:你肯定应该在那里使用else或第二个条件,因为如果top也被执行,那么将始终执行此代码(如果hours >= 14评估{{1} } true也是如此,它应该是hours >=6hours >= 6 && hours < 14

答案 1 :(得分:0)

我认为你已经宣布了这样的声音。和&#39; dag&#39;在您发布的代码段之外。

var daynight = document.querySelector('header');
    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()

    if (hours >= 14){
        //Add night logic here
    }
    else if(hours >= 6){ //Important to add 'ELSE' here to prevent it from always firing when first condition is met (like Mathletics said in comment)
            console.log(dag);
            daynight.classList.remove('nacht');
    } 

答案 2 :(得分:0)

jsFiddle查看此答案

var daynight = document.querySelector('header');
    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()

    if (hours < 6 || hours >= 14){
        console.log('night');
        daynight.classList.add('nacht');
    }
    if(hours >= 6 && hours < 14){
        console.log('day');
        daynight.classList.remove('nacht');
    }