我有2个约会。两者都是yyyy-mm-dd
格式。我申请了一个简单的检查,如果如何检查日期是否大于其他日期?
if ('2017-01-15' > '2016-12-15') {
return true;
} else {
return false;
}
但它给了我一个语法错误。我该怎么办?
我有2个约会。两者都是yyyy-mm-dd
格式。我申请了一个简单的检查,如果如何检查日期是否大于其他日期?
if ('2017-01-15' > '2016-12-15') {
return true;
} else {
return false;
}
但它给了我一个语法错误。我该怎么办?
鉴于日期字符串和你的代码结构的格式,你应该有什么工作。如果出现错误,请检查它是否来自您在问题中显示的代码部分。这就是说,通过在比较它们之前将字符串更改为Date对象,可以改进代码。您也可以通过返回比较结果来缩短代码。试试这个:
function dateComparison() {
return new Date('2017-01-15') > new Date('2016-12-15');
}
console.log(dateComparison());
字符串比较也可以在这里使用(以'yyyy-mm-dd'格式) –
@PranavCBalan非常好的一点。 OP中的代码样本在语法上也是有效的,所以问题必须在其他地方。我更新了答案 –
'return'2017-01-15'>'2016-12-15';'就够了 –
运营商像==, !=, ===, 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();
可以使用moment.js库,帮助你实现它:
return moment('2017-01-15').format('YYYY-MM-DD') > moment('2016-12-15').format('YYYY-MM-DD');
作为每MDN
return语句结束功能执行和指定要返回给函数调用者的值。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return
所以你必须,如果你不使用的功能中,如果条件可以得到这个错误。
您可以将它们转换为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()
分享错误的详细信息并完成代码 –
您提供的代码中没有错误,**它正常工作**问题必须存在于其他位置,或者此处的代码未反映您的真实码。请调查问题的确切原因,然后编辑问题以提供真实代码和/或更好的解释。 –