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

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形式,如下所示:




你可能感兴趣的:(js,js)