JavaScript时间比较

JavaScript时间比较,javascript,datetime,date,time,Javascript,Datetime,Date,Time,我现在有以下代码: var d = new Date(); var curr_hour = d.getHours(); var curr_minute = d.getMinutes(); var curr_time = curr_hour + ":" + curr_minute; var open_time = "17:00"; if(Date.parse ( curr_time ) > Date.parse ( open_time )){ alert("Webshop is o

我现在有以下代码:

var d = new Date();
var curr_hour = d.getHours();
var curr_minute = d.getMinutes();
var curr_time = curr_hour + ":" + curr_minute;

var open_time = "17:00";

if(Date.parse ( curr_time ) > Date.parse ( open_time )){
   alert("Webshop is open");
} else {
   alert("Webshop is closed.");
}

代码应该做的是。。如果当前时间大于17:00,则发送警报;如果当前时间大于17:00,则发送其他警报。。我现在得到的只是它已关闭。

您不需要所有解析,您已经知道
getHours()
方法

if(new Date().getHours() >= 17)

…就这样

为什么要创建日期对象?只要使用基础数学

var d = new Date();
var curr_hour = d.getHours();
var curr_minute = d.getMinutes();
var curr_time = curr_hour + curr_minute/60;

var open_time = 17;
var openClosed = curr_time > open_time ? "Open" : "Closed";

alert("Webshop is " + openClosed + ".");

你不能仅仅用
hh:mm
格式解析时间。为其指定任意日期(本例中为2012年1月1日),使其成为完整日期对象。日期不重要,只要对双方都一样

if(Date.parse('01/01/2012 ' + curr_time) > Date.parse ('01/01/2012 ' +  open_time)){
   console.log("open");
}else{
   console.log("closed");
}
一个更简单的方法是只比较小时和分钟,因为这就是你所拥有的

curr_hour > open_hour && curr_minute > open_minute
试试这个:

var d = new Date();
var curr_hour = d.getHours();
var curr_minute = d.getMinutes();
var curr_second = d.getSeconds();

if((curr_hour > 17) || (curr_hour == 17 && curr_minute == 0 && curr_second == 0 )){
   alert("Webshop is open");
} else {
   alert("Webshop is closed.");
}

首先,你缺少了一个
else
Ahh。。是的,我已经修好了,还是没用。。(愚蠢的笑)非常简单,非常有用。谢谢托马斯兹!是的,但是请注意,这也会在17:00时出现。您只需要获得大于17:00的时间。那么,检查一下秒和分钟。我把密码贴在了一个回复上。。。我们需要分别检查==17:00:00条件。刚刚修改