function time() {
//YYYY-MM-DD格式
var dateBeginStr = $("#id1").find('input').combobox('getText');
var dateEndStr = $("#id2").find('input').combobox('getText');
//时间正则:YYYY-MM-DD
var regex = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
//匹配正则
if (!regex.test(dateBeginStr) || !regex.test(dateEndStr)) {
return false;
}
/**
* 校验日期范围,开始时间不能大于结束时间
*/
if (dateBeginStr !== '' && dateEndStr !== '') {
var dateBegin = new Date(dateBeginStr.replace(/\-/g, "\/"));
var dateEnd = new Date(dateEndStr.replace(/\-/g, "\/"));
if (dateBegin > dateEnd) {
return false;
}
}
/**
* 统计周期不能超过3个月 的验证
*/
//年
var startYear = dateBeginStr.substr(0,4);
var endYear = dateEndStr.substr(0,4);
//月
var startMonth = dateBeginStr.substr(5,2);
var endMonth = dateEndStr.substr(5,2);
//日
var startDay = dateBeginStr.substr(8,2);
var endDay = dateEndStr.substr(8,2);
var flag = true;
if (startYear === endYear) {
//同年
if (endMonth - startMonth > 3) {
flag = false;
} else if (endMonth - startMonth == 3) {
if(endDay > startDay){ //结束日期的日大于开始日期的日
flag = false;
}
}
} else {
if(endYear - startYear > 1){//大于1至少超过一年了,直接返回false
flag = false;
}else if(endYear - startYear == 1){
if(startMonth < 10){ //开始年的月份小于10时,不需要跨年
flag = false;
}else if((parseInt(startMonth)+3) - endMonth < 12){ //月相隔大于3个月
flag = false;
}else if((parseInt(startMonth)+3) - endMonth == 12){ //月相隔3个月,比较日
if(endDay > startDay){ //结束日期的日大于开始日期的日
flag = false;
}
}
}
}
if(!flag){
return false;
}
return true;
}