【问题标题】:Comparing date time using javasctipt使用javascript比较日期时间
【发布时间】:2014-05-02 18:26:58
【问题描述】:

我正在尝试使用 javascript 比较两个日期,日期时间格式如下所示。这里我想检查 date1 > date2。如何在 javascript 中实现这一点。

 var date1='2014-03-25 07:30 AM';
 var date2='2014-03-25 04:30 PM';

【问题讨论】:

标签: javascript jquery


【解决方案1】:

使用getTime

 if ((new Date(date1).getTime()) > ( new Date(date2).getTime())){
 }

【讨论】:

  • 如果我这样做了警报(new Date(date1).getTime()) 我得到的是 NaN
  • 只有当date1 不是您声称的那样时才会发生这种情况。可以alert(date1)吗?
  • new Date 执行的日期解析在您的机器上是特定于文化的,除非日期是 ISO 格式。如果您需要处理这样的日期,我建议您查看 moment js 解析功能:momentjs.com/docs/#/parsing
【解决方案2】:

像这样-

if((new Date(date1).getTime()) > (new Date(date2).getTime())){
 // do something
}

【讨论】:

    【解决方案3】:

    请试试这个。

    if (new Date(date1) > new Date(date2)) 
    

    【讨论】:

    • 我已经测试过了,它运行良好。我还向您发送了我执行测试的场景。函数 func() { var date1 = '2014-03-25 07:30 AM'; var date2 = '2014-03-25 04:30 PM'; if (new Date(date1) > new Date(date2)) { alert('date1' + date1);警报('date2' + date2); } else if (new Date(date1)
    • 我不知道为什么我只是做警报(新日期(日期1));我的日期无效
    • 你能做一个小提琴吗?
    • 你能在firefox中查看吗?
    【解决方案4】:

    这应该可行:

        var date1 = '2014-03-25 07:30 AM';
        var date2 = '2014-03-25 04:30 PM';
        console.log((new Date(date1)) >= (new Date(date2)));
    

    编辑: Op 正确地指出上面的代码不起作用(例如,在 FireFox 中,但它在 Chrome 中起作用)。我已经读过了

    new Date() // current date and time
    new Date(milliseconds) //milliseconds since 1970/01/01
    new Date(dateString)
    new Date(year, month, day, hours, minutes, seconds, milliseconds)
    

    是 Date here 的有效实例化。

    但是,示例中用于 date1 和 date2 的日期字符串无效,因此并非所有浏览器都支持。

    您应该执行以下操作之一,而不是“2014-03-25 07:30 AM”(无效):

    • 将您的输入转换为毫秒数
    • 将您的输入转换为日期字符串,例如“October 13, 1975 11:13:00”
    • 计算年、月、日、时、分、秒和毫秒,然后将它们传递给实例化

    【讨论】:

      猜你喜欢
      • 2012-01-04
      • 1970-01-01
      • 2014-03-20
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多