js实现判断两个时间间隔是否大于3个月,即时间跨度不得超过3个月。实现代码如下:
function checkTime(){
var begintime = document.getElementById('startTime').value;
var endtime = document.getElementById('endTime').value;
if(!endtime){
return true;
}
var time1 = new Date(begintime).getTime();
var time2 = new Date(endtime).getTime();
if(begintime==''){
alert("开始时间不能为空");
return false;
}
if(endtime==''){
alert("结束时间不能为空");
return false;
}
if(time1 > time2){
alert("开始时间不能大于结束时间");
return false;
}
//判断时间跨度是否大于3个月
var arr1 = begintime.split('-');
var arr2 = endtime.split('-');
arr1[1] = parseInt(arr1[1]);
arr1[2] = parseInt(arr1[2]);
arr2[1] = parseInt(arr2[1]);
arr2[2] = parseInt(arr2[2]);
var flag = true;
if(arr1[0] == arr2[0]){//同年
if(arr2[1]-arr1[1] > 3){ //月间隔超过3个月
flag = false;
}else if(arr2[1]-arr1[1] == 3){ //月相隔3个月,比较日
if(arr2[2] > arr1[2]){ //结束日期的日大于开始日期的日
flag = false;
}
}
}else{ //不同年
if(arr2[0] - arr1[0] > 1){
flag = false;
}else if(arr2[0] - arr1[0] == 1){
if(arr1[1] < 10){ //开始年的月份小于10时,不需要跨年
flag = false;
}else if(arr1[1]+3-arr2[1] < 12){ //月相隔大于3个月
flag = false;
}else if(arr1[1]+3-arr2[1] == 12){ //月相隔3个月,比较日
if(arr2[2] > arr1[2]){ //结束日期的日大于开始日期的日
flag = false;
}
}
}
}
if(!flag){
alert("时间跨度不得超过3个月!");
return false;
}
return true;
}
其中startTime
和endTime
是通过id获取的,参数值格式为yyyy-mm-dd
形式,如下所示:
<input type="text" name="startTime" id="startTime" value="2017-05-06" />
<input type="text" name="endTime" id="endTime" value="2017-08-03" />