0

次のように、時刻に基づいて特定のdivを表示/非表示にしようとしています。

function timetheme(){

    $("#dawn,#day,#dusk,#night").hide();
    var d = new Date();
    var n = d.getHours();
    if (n > 5 && n < 8){
        $("#dawn").show();
    }
    else if (n > 8 && n < 16){
        $("#day").show();
    }
    else if (n > 16 && n < 20){
        $("#dusk").show();
    }
    else {
        $("#night").show();
    };
};

window.onload = timetheme;

私は自分のPCの時計を変更することによって(そしてまた一日中)それをテストしました、そしてそれは素晴らしい...「#dusk」を除いて動作します。4pから8pの場合は、#duskが存在しないかのように「#night」に直行します。

私は他のものを変更しようとさえしました(例えば、#dayを8aから8p、さらには10pにストレッチします)そして#dayはうまく機能します。しかし、#dusk(または名前とパラメーターが異なる場合は他の追加)を挿入しようとすると、そこにないかのように動作します。

私はここで同様の質問をすべて検索して読みましたが、それらは常に、私の特定の質問に対処できないほど十分に異なるものを持っていました。

前もって感謝します!

4

1 に答える 1

3

範囲には、端からの時間を含める必要があります。

if (n >= 5 && n < 8){
    $("#dawn").show();
}
else if (n >= 8 && n < 16){
    $("#day").show();
}
else if (n >= 16 && n < 20){
    $("#dusk").show();
}
else {
    $("#night").show();
};
于 2012-09-19T21:06:26.223 に答える