我在比较日期时有这段代码
var startDate = jQuery("#startDate_field_id").val();
var endDate = jQuery("#endDate_field_id").val();
var startDateSplit = startDate.split("-");
var endDateSplit = endDate.split("-");
var start = new Date();
var end = new Date();
start.setFullYear( startDateSplit[0], startDateSplit[1], startDateSplit[2] );
end.setFullYear( endDateSplit[0], endDateSplit[1], endDateSplit[2] );
if( end < start ) {
alert("End Date should be less than Start Date of the Event");
}
#startDate_field_id的值为 2011-10-05
白色$ endDate_field_id的值为 2011-10-04
您认为这不起作用的原因是什么。
任何帮助都将受到极大的赞赏和奖励。 谢谢! :)
答案 0 :(得分:1)
我将使用UNIX纪元时间戳进行比较:
if (end.getTime() > start.getTime()) {
alert('...');
}
答案 1 :(得分:1)
因为setFullYear方法月参数接受0..11,意味着9是10月。
为什么不使用
var start = new Date(startDate);
var end = new Date(endDate);
答案 2 :(得分:1)
var start = new Date(Number(startDateSplit[0]), Number(startDateSplit[1])-1, Number(startDateSplit[2]));
var end = new Date(Number(endDateSplit[0]), Number(endDateSplit[1])-1, Number(endDateSplit[2]));
或简单地说:
答案 3 :(得分:1)
答案 4 :(得分:1)
我认为您的第一个问题是您错误地使用了Date对象。您将三个参数传递给setFullYear()方法,该方法只接受一个参数,即4位数。
var start = new Date();
var end = new Date();
start.setFullYear( startDateSplit[0], startDateSplit[1], startDateSplit[2] );
end.setFullYear( endDateSplit[0], endDateSplit[1], endDateSplit[2] );
你可能想尝试这样的事情:
var start = new Date(startDateSplit[0], startDateSplit[1] - 1, startDateSplit[2])
var end = new Date(endDateSplit[0], endDateSplit[1] - 1, endDateSplit[2]);