下面的代码给了我麻烦。当我从7月1日晚上11点选择fromDate时,结果3将被设置为2011年6月2日星期四11:52:26。我在chrome中检查fromDate和toDate的值,它们看起来很好,但结果3设置为古怪的日期。任何解决方案?
function(value, element, params) {
fromDate = new Date(startDate.val());
toDate = new Date(endDate.val());
result1 = this.optional(element);
result2 = fromDate <= toDate;
result3 = new Date();
result3.setDate(fromDate.getDate()+1);
result5 = (toDate.getDate()+0);
result4 = (fromDate.getDate()+1)>(toDate.getDate()+0);
return result1 || (result2 && result4);
}
答案 0 :(得分:1)
result3.setDate(fromDate.getDate()+1)
仅设置Date对象的月份日期。由于result3
创建了一个新的Date对象,这意味着result3
没有正确设置其时间。
如果您想将result3
设置为fromDate
加一天,则必须执行以下操作:
var DAY_IN_MILLISECONDS = 1000 * 60 * 60 * 24;
result3 = new Date(fromDate + DAY_IN_MILLISECONDS);
但是,由于我不确定您的变量代表什么,因此很难诊断。