用javascript比较日期

Pau*_*gor 24 javascript date

我在javascript中有两个日期:

var first = '2012-11-21';
var second = '2012-11-03';
Run Code Online (Sandbox Code Playgroud)

我想做:

 if(first > second){
   //...
 }
Run Code Online (Sandbox Code Playgroud)

如果没有外部库,最好的方法是什么?

Art*_*ves 57

if( (new Date(first).getTime() > new Date(second).getTime()))
{
    ----------------------------------
}
Run Code Online (Sandbox Code Playgroud)


nnn*_*nnn 10

如果您的日期是yyyy-mm-dd问题中显示的严格格式的字符串,那么您的代码将按原样运行,而无需转换为日期对象或数字:

if(first > second){
Run Code Online (Sandbox Code Playgroud)

...将进行词法(即字母数字"字典顺序")字符串比较 - 它将比较每个字符串的第一个字符,然后比较每个字符串的第二个字符,等等.这将给出您想要的结果...


小智 8

你可以这样做,它会工作正常:

var date1 = new Date('2013-07-30');
var date2 = new Date('2013-07-30');

if(date1 === date2){ console.log("both are equal");}  //it does not work 
==>undefined  //result
if(+date1 === +date2){ console.log("both are equal");} //do it this way! 
//(use + prefix for a variable that holds a date value)
==> both are equal //result
Run Code Online (Sandbox Code Playgroud)

注意: - 不要忘记使用+前缀


小智 5

最好的办法是,

var first = '2012-11-21';
var second = '2012-11-03';

if (new Date(first) > new Date(second) {
    .....
}
Run Code Online (Sandbox Code Playgroud)