我有一些代码,我认为应该根据一天中的时间显示或隐藏两个div。它目前显示“封闭”的div,尽管时间晚于它 - 我错过了什么?该网站仅在两台机器上运行,因此只需要在它们上面设置时间。
$(document).ready(function () {
var d = new Date();
var time = d.getHours() + ":" + d.getMinutes();
if (time > ("08:29") && time < ("16:29")) {
$('.hours').show();
$('.closed').hide();
}
else {
$('.hours').hide();
$('.closed').show();
}
});
答案 0 :(得分:1)
var time = new Date();
添加两个变量:
var startTime = new Date().setHours(8,29);
var endTime = new Date().setHours(16,29);
在if
语句中使用此表达式
if (time.getTime() > startTime && time.getTime() < endTime) {
答案 1 :(得分:0)
getHours()
和getMinutes()
并非零填充。所以,如果它是08:03,那将是8:3。
或许考虑使用MomentJS,您可以在某个日期调用format
并将其解析为所需的格式。
编辑:作为快速解决方法,请使用d.toISOString().split('T')[1]
答案 2 :(得分:0)
您不使用字符串比较时间。您需要两个日期对象来比较它们。
更简单的方法是创建另外两个日期,并根据低和高时间限制设置日期。然后将您的来源时间与限制进行比较。
$(document).ready(function () {
var d = new Date();
var low = new Date();
var high = new Date();
low.setHours(8);
low.setMinutes(29);
high.setHours(16);
high.setMinutes(29);
if (d.getTime() > low.getTime() && d.getTime() < high.getTime()) {
$('.hours').show();
$('.closed').hide();
} else {
$('.hours').hide();
$('.closed').show();
}
});
Date#getTime()
返回毫秒数,这更容易比较。
答案 3 :(得分:0)
我为你准备了演示版here,我们将在其中做
var start = new Date();
var end = new Date();
var time = new Date().getTime();
if (time > start.setHours(8,29) && time < end.setHours(16,29))