我正在比较2个日期
1)2013-12-18
2)2013-12-4
我的代码正在考虑2013-12-4大于2013-12-18。
以下是我的代码DEMO:http://jsfiddle.net/tdVGL/
这是我的JavaScript代码:
var date = new Date();
var getFromDate =
parseInt(date.getFullYear()) + '-' +
parseInt(date.getMonth() + 1) + '-' +
parseInt(date.getDate() - 14);
var newDate = new Date();
var newD = parseInt(newDate.getDate());
var newM = parseInt(newDate.getMonth() + 1);
var newY = parseInt(newDate.getFullYear());
var myDate = parseInt(newY) + '-' + parseInt(newM) + '-' + parseInt(newD);
alert(getFromDate);
alert(myDate);
if (getFromDate < myDate) {
alert("Sorry! You cannot add event on past dates.");
return false;
} else {
alert("This is the right day");
}
答案 0 :(得分:2)
您比较的不是日期比较。这些值被视为字符串。看看这个比较。您需要将它们转换为有效的Date对象以进行正确的日期比较。
if (new Date(getFromDate) < new Date(myDate)) {
alert("Sorry! You cannot add event on past dates.");
return false;
}
else {
alert("This is the right day");
}
答案 1 :(得分:1)
正如Sachim所说,你只是在字符串上进行比较,而不是在Date对象上进行比较。
您可以简化代码(仅适用于Date对象)
var myDate = new Date();
var getFromDate = new Date(myDate);
getFromDate.setDate(myDate.getDate() -14);
alert(getFromDate);//of course, this is not in the format yyyy-mm-dd
alert(myDate);
if(getFromDate<myDate)
{
alert("Sorry! You cannot add event on past dates.");
return false;
}
else
{
alert("This is the right day");
}
答案 2 :(得分:0)
您要比较的对象不是日期,它们是字符串
var getFromDate = parseInt(date.getFullYear())+'-'+parseInt(date.getMonth()+1)+'-'+parseInt(date.getDate()-14);
您可以将新日期实例化为
new Date(getFromDate)
和new Date(myDate)
然后进行比较