js 判断时间不能超过3个月

来源:互联网 发布:同济大学软件学院电话 编辑:程序博客网 时间:2024/06/09 21:04

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;    }

其中startTimeendTime是通过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" />