3

我现在有以下代码:

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

4 回答 4

6

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

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

...就是这样!

于 2012-08-01T15:38:51.577 回答
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
于 2012-08-01T15:42:29.107 回答
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 + ".");
于 2012-08-01T15:40:15.487 回答
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.");
}
于 2012-08-01T15:55:21.863 回答