2017-01-16 153 views
0

我有2个约会。两者都是yyyy-mm-dd格式。我申请了一个简单的检查,如果如何检查日期是否大于其他日期?

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

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

+0

分享错误的详细信息并完成代码 –

+1

您提供的代码中没有错误,**它正常工作**问题必须存在于其他位置,或者此处的代码未反映您的真实码。请调查问题的确切原因,然后编辑问题以提供真实代码和/或更好的解释。 –

回答

11

鉴于日期字符串和你的代码结构的格式,你应该有什么工作。如果出现错误,请检查它是否来自您在问题中显示的代码部分。这就是说,通过在比较它们之前将字符串更改为Date对象,可以改进代码。您也可以通过返回比较结果来缩短代码。试试这个:

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

 
console.log(dateComparison());

+0

字符串比较也可以在这里使用(以'yyyy-mm-dd'格式) –

+1

@PranavCBalan非常好的一点。 OP中的代码样本在语法上也是有效的,所以问题必须在其他地方。我更新了答案 –

+0

'return'2017-01-15'>'2016-12-15';'就够了 –

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

可以使用moment.js库,帮助你实现它:

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

你可以试试这个

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

你不能'.getTime()'一个字符串。 – zurfyx

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

相关问题