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;

我已经通过改变我的电脑时钟(以及一天中的所有时间)对其进行了测试,它工作得很好......除了“#dusk”。如果它在 4p 和 8p 之间,它会直接进入“#night”,就好像#dusk 不存在一样。

我什至尝试过改变其他的(例如将#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 回答