我有2个约会。两者都是yyyy-mm-dd
格式。我应用了一个简单的检查,如果
if ('2017-01-15' > '2016-12-15') {
return true;
} else {
return false;
}
但是它给了我一个语法错误。我该怎么办?
答案 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())