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

问题描述 投票:0回答:7

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

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

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

javascript jquery
7个回答
11
投票

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

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

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

console.log(dateComparison());

1
投票

根据MDN

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

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

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


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();

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()


0
投票

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

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

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');
    }

-2
投票

你可以试试这个

    if(d1.getTime()>d2.getTime())
© www.soinside.com 2019 - 2024. All rights reserved.