簡體   English   中英

JavaScript時間在08:30-20:00之間

[英]Javascript time between 08:30 - 20:00

我試圖在一天中的特定時間范圍之間顯示一條消息,但我無法使其工作,要么顯示第一個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');
        }
    }

您可以通過從較小值到較大值的檢查來稍微簡化條件,例如

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';
    }
}

使用絕對分鍾可能會變得更簡單:

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
    }
}

每個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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM