【问题标题】:JavaScript time compareJavaScript 时间比较
【发布时间】:2012-08-01 15:34:45
【问题描述】:

我现在有以下代码:

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 发送警报,如果不是,则发送另一个警报..我现在得到的只是它已关闭。

【问题讨论】:

  • 一方面,您缺少else
  • 啊..是的,我修好了,还是不行..(愚蠢的大声笑)

标签: javascript datetime date time


【解决方案1】:

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

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

...就是这样!

【讨论】:

  • 非常简单,非常有用。谢谢托马斯!
  • 是的,但是请注意,当时间是 17:00 时,这也会开始。您只需要获得大于 17:00 的时间。因此,还要检查秒和分钟。我在其中一个答案中发布了代码
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      试试这个:

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

      【讨论】:

      • 啊,是的...我们需要单独检查 == 17:00:00 条件。刚刚修改
      猜你喜欢
      • 2011-05-23
      • 2012-01-04
      • 1970-01-01
      • 2018-03-10
      • 2013-10-01
      • 2014-05-02
      • 2014-03-20
      • 2021-11-27
      相关资源
      最近更新 更多