Javascript检查日期是否有效,如果无效则进行更改

Javascript检查日期是否有效,如果无效则进行更改,javascript,jquery,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui Datepicker,试试看 var dates=新数组(); 函数addDates(日期){ 如果(dates.length>0){ 日期=[]; } if(jQuery.inArray(日期,日期)0){ 日期=[]; } if(jQuery.inArray(日期,日期)


试试看
var dates=新数组();
函数addDates(日期){
如果(dates.length>0){
日期=[];
}
if(jQuery.inArray(日期,日期)<0){
var i;
var month=date.getMonth()+1;
var day=date.getDate();
var year=date.getFullYear();
对于(i=1;i=0){
//启用日期以便可以取消选择。将样式设置为高亮显示
返回[true,“ui状态突出显示”];
}
//不在数组中的日期保留为启用状态,但没有额外的样式
返回[真,“];
}
});
});

日期:

顺便说一句,当日期无效时,推送日期后,发现一个添加日期+++的解决方案:)

错误:

if (month != 12) {
   month = month + 1;
   day = 1;
}
var value = month + '/' + day + '/' + year;
dates.push(value);
您将
2017年11月1日
推到
数据
。 然后
天=1
月=11

var value = month + '/' + day + '/' + year;
var dateIsValid = isDate(value);
if (dateIsValid == true) {
day++;
dates.push(value);
}
再次按下
2017年11月1日
。您可以将
day++
添加到

if (month != 12) {
   month = month + 1;
   day = 1;
}
var value = month + '/' + day + '/' + year;
dates.push(value);
day++;
下同:


试试看
var dates=新数组();
函数addDates(日期){
如果(dates.length>0){
日期=[];
}
if(jQuery.inArray(日期,日期)<0){
var i;
var month=date.getMonth()+1;
var day=date.getDate();
var year=date.getFullYear();
对于(i=1;i=0){
//启用日期以便可以取消选择。将样式设置为高亮显示
返回[true,“ui状态突出显示”];
}
//不在数组中的日期保留为启用状态,但没有额外的样式
返回[真,“];
}
});
});

日期:

这是使用的解决方案,非常简单,您不需要使用您拥有的复杂编码。在所选日期中添加14天。
Moment.js
自动处理
月变化
年变化
等,因此您不需要更改月、年、日期等附加条件


var dates=新数组();
函数addDa(日期){
日期=[];
所选var\u日期=时刻(日期);
var last_date=时刻(日期)。加上(14,‘天’);
对于(var dat=所选日期;dat=0){
//启用日期以便可以取消选择。将样式设置为高亮显示
返回[true,“ui状态突出显示”];
}
//不在数组中的日期保留为启用状态,但没有额外的样式
返回[真,“];
}
});
});

试试看

日期:

使用momentt.js,它非常容易使用,并且有很多功能。检查我的答案,使用moment.js非常容易,它可以减少这么多代码。