使用javascript比较日期时间

Posted

技术标签:

【中文标题】使用javascript比较日期时间【英文标题】:Comparing date time using javasctipt 【发布时间】: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';

【问题讨论】:

可能重复:***.com/questions/11170054/… 在实例化跨浏览器工作的新 Date 对象之前,您需要对这些日期字符串进行不同的格式化。 【参考方案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” 计算年、月、日、时、分、秒和毫秒,然后将它们传递给实例化

【讨论】:

以上是关于使用javascript比较日期时间的主要内容,如果未能解决你的问题,请参考以下文章

javascript日期时间比较

仅比较日期部分而不比较 JavaScript 中的时间

通过与javascript中的今天日期进行比较来允许今天的日期和未来的日期

如何比较日期和时间并获取差异,然后在 Javascript 中将其设置为秒

在Javascript中比较两个相同的日期[重复]

如何在javascript中比较两个字符串日期?