如何检查日期是否大于另一个?

时间:2017-01-16 08:47:53

标签: javascript jquery

我有2个约会。两者都是yyyy-mm-dd格式。我应用了一个简单的检查,如果

if ('2017-01-15' > '2016-12-15') { 
    return true; 
} else { 
    return false; 
}

但是它给了我一个语法错误。我该怎么办?

7 个答案:

答案 0 :(得分:11)

鉴于日期字符串的格式和您的代码结构,您应该使用的是什么。如果您收到错误,请检查它是否来自您在问题中显示的代码部分。

话虽这么说,您可以通过在比较字符串之前将字符串更改为Date对象来改进代码。您还可以通过返回比较结果来缩短代码。试试这个:

function dateComparison() {
  return new Date('2017-01-15') > new Date('2016-12-15');
}

console.log(dateComparison());

答案 1 :(得分:1)

根据MDN

  

return语句结束函数执行并指定要返回给函数调用者的值。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

因此,如果您未在函数中使用if条件,则必须收到此错误。

答案 2 :(得分:0)

==, !=, ===, and !==等运算符要求您使用date.getTime(),如下所示:

var x = new Date('2017-01-15');
var y = new Date('2016-12-15');  
var same = x.getTime() === y.getTime();
var notSame = x.getTime() !== y.getTime();

答案 3 :(得分:0)

您可以使用moment.js库来帮助您实现它:

return moment('2017-01-15').format('YYYY-MM-DD') > moment('2016-12-15').format('YYYY-MM-DD');

答案 4 :(得分:0)

您可以将它们转换为Date个对象然后进行比较。

var dateStrA = "2017-01-15 00:00:00";
var dateStrB = "2016-12-15 00:00:00";

if (new Date(dateStrA) > new Date(dateStrB))
{
     ...
}
else
{
    ...
}

使用等号进行比较(例如===)对Date个对象无效。您也可以使用Date.compare()

答案 5 :(得分:0)

Try this...worked for me.  

    var startDate = "2019-03-23";
    var endDate = "2019-03-24";
    if(Date.parse(endDate) >= Date.parse(startDate)) {
     console.log('endDate is greater');
    } else {
     console.log('startDate is greater');
    }

答案 6 :(得分:-2)

你可以试试这个

    if(d1.getTime()>d2.getTime())