JavaScript时间比较

时间:2012-08-01 15:34:45

标签: 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 open");
} else {
   alert("Webshop is closed.");
}

代码应该做的是..如果当前时间大于17:00发送警报,如果没有,则发送另一个警报..我现在得到的是它已关闭。

4 个答案:

答案 0 :(得分:6)

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

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

......就是这样!

答案 1 :(得分:1)

您不能只以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

答案 2 :(得分:0)

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

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 + ".");

答案 3 :(得分:0)

试试这个:

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.");
}