使用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中的今天日期进行比较来允许今天的日期和未来的日期