如何在Javascript中进行日期比较?

107 javascript datetime

可能重复:
使用JavaScript比较2个日期

我想在javascript中比较两个日期.我一直在做一些研究,但我能找到的是如何返回当前日期.我想比较两个不同的日期,与今天无关.我怎么做.

var startDate = Date(document.form1.Textbox2);
Run Code Online (Sandbox Code Playgroud)

mat*_*t b 220

if (date1.getTime() > date2.getTime()) {
    alert("The first date is after the second date!");
}
Run Code Online (Sandbox Code Playgroud)

引用Date对象

  • 看起来chrome和firefox支持`date1> date2`,也就是说没有getTime()部分.有人知道其他浏览器吗? (3认同)
  • 我有这个建议,但getTime函数返回一个未定义的值.我不认为我完全理解getTime().那应该是预定义的功能吗? (2认同)

Vla*_*idt 15

new Date('1945/05/09').valueOf() < new Date('2011/05/09').valueOf()
Run Code Online (Sandbox Code Playgroud)


Wil*_*ner 9

可以使用其他数据类型使用的相同比较运算符来比较JavaScript的日期:>,<,<=,> =,==,!=,===,!==.

如果你有两个日期A和B,那么A <B如果A比B更进一步回到过去.

但听起来你遇到的麻烦就是将字符串变成日期.您只需将字符串作为新Date的参数传递即可:

var someDate = new Date("12/03/2008");
Run Code Online (Sandbox Code Playgroud)

或者,如果您想要的字符串是表单字段的值,因为它似乎可能是:

var someDate = new Date(document.form1.Textbox2.value);
Run Code Online (Sandbox Code Playgroud)

如果该字符串不是JavaScript识别为日期的字符串,您仍将获得Date对象,但它将"无效".与其他日期的任何比较都将返回false.转换为字符串时,它将变为"无效日期".它的getTime()函数将返回NaN,并且在日期本身调用isNaN()将返回true; 这是检查字符串是否为有效日期的简便方法.

  • 这不适用于==(至少在firefox上).直接比较两个日期总是返回false,你必须使用上面提到的getTime(). (21认同)
  • 新日期("12/1/2015")!==新日期("2015年12月1日"),所以说你比较像其他数据类型这样的javascript日期充其量是误导性的.Downvoted. (6认同)
  • 在Visual Studio 2010中javascript调试器:`?(新日期('1995-02-04T24:00')==新日期('1995-02-05T00:00')); false`但是`?(new Date('1995-02-04T24:00').getTime()== new Date('1995-02-05T00:00').getTime()); TRUE` (2认同)
  • ==,!=,===,!===不起作用.此外,没有!===运算符. (2认同)