Javascript时间为08:30至20:00

时间:2017-04-06 06:36:00

标签: javascript

我试图在一天中的某些时间范围之间显示消息,但是我无法使其工作它显示第一个IF或者根本没有显示任何错误我似乎无法弄清楚。我做错了什么?

var today = new Date();
var hour = today.getHours();
var minute = today.getMinutes();

if(today.getDay() == 4){
        if(hour > 8 && minute > 30 || hour < 20){
            document.getElementById('test').innerHTML = ('come today till 20:00');
        } else if (hour > 20 && hour < 0){
            document.getElementById('test').innerHTML = ('Come tomorrow till 20:00');
        } else (hour > 0 && hour < 8).document.getElementById('test').innerHTML = ('Come today from 08:00 till 20:00');
    }

感谢帮助人们:) 这就是现在的工作方式。

        if(today.getDay() == 4){
        if((hour === 8 && minute > 30 || hour > 8) && hour < 20){
            document.getElementById('test').innerHTML = ('Kom vandaag langs in onze showtuin tot 20:00 uur donderdag');
        } else if (hour >= 20 && hour < 24){
            document.getElementById('test').innerHTML = ('Kom morgen langs in onze showtuin tot 20:00 uur');
        } else{
            document.getElementById('test').innerHTML = ('Kom vandaag langs in onze showtuin van 08:00 tot 20:00 donderdag');
        }
    }

3 个答案:

答案 0 :(得分:2)

您可以稍微简化条件,从小值检查到更大的值,例如

if (today.getDay() == 4) {
    if (hour < 8) {
        document.getElementById('test').innerHTML = 'Come today from 08:00 till 20:00';
    } else if (hour < 20) {
        document.getElementById('test').innerHTML = 'Come today till 20:00';
    } else if (hour < 24) {
        document.getElementById('test').innerHTML = 'Come tomorrow till 20:00';
    }
}

答案 1 :(得分:0)

使用绝对分钟可能会变得更简单:

var today = new Date();
var crtminut = ((today/60000).toFixed(0)-today.getTimezoneOffset())%1440;
var minmin = 8*60+30;
var minmax = 20*60;

if (today.getDay() == 4) {
    if ((minmin <= crtminut) && (crtminut < minmax)) {
        ... inner period
    } else {
        ... outer period
    }
}

答案 2 :(得分:0)

每个if可以使用先前的条件,这意味着如果您正确地对条件进行排序,您可以使其变得非常简单:

if (hour >= 20) {
    //20:00 - 23:59
}
else if (hour > 8) {
    //9:00 - 19:59
}
else if (hour == 8 && minute >= 30) {
    //8:30 - 8:59
}
else {
    //0:00 - 8:29
}