让前端飞

预约表单dome 判断时间差

2019-04-29  本文已影响0人  小北酱丶
案例.png

需求是做一个预约功能 框架是用mint-ui为基础
选择的日期可以是当天但是以当前时间为基础 不可以是过去时间
结束时间必须大于开始时间

以下是代码

先调用checkDate
//选择的年月日不可以大于当前年月日
//controldate参数是传入当前选择的时间
    function checkDate(controldate) {
        // let controldate;
        // controldate = document.getElementById("sendDate").value;
        if (controldate == "") {
            alert('日期不能为空');
            return false;
        } else {
            var day = new Date();
            var Year = 0;
            var Month = 0;
            var Day = 0;
            var CurrentDate = "";
            //初始化时间 
            Year = day.getFullYear();
            Month = day.getMonth() + 1;
            Day = day.getDate();

            CurrentDate += Year + "-";

            if (Month >= 10) {
                CurrentDate += Month + "-";
            }
            else {
                CurrentDate += "0" + Month + "-";
            }
            if (Day >= 10) {
                CurrentDate += Day;
            }
            else {
                CurrentDate += "0" + Day;
            }
            //alert(CurrentDate);//当前日期 

            var startDate = new Date(CurrentDate.replace("-", ",")).getTime();
            var endDate = new Date(controldate.replace("/", ",")).getTime();
            if (startDate > endDate) {
                // alert('选择日期不能小于当前日期!');
                // document.getElementById("sendDate").focus();
                return false;
            } else {
                return true;
            }
        }
    }

再调用timeData
//传值 日期格式1997/1/1 时间格式14:05 
    function timeData(pickerData,pickerTime,pickerTimeEnd) {
        //获取当前年月日 时间和分钟
        var year = new Date().getFullYear();
        var month = new Date().getMonth() + 1;
        var day = new Date().getDate();
        var hours = new Date().getHours();
        var minutes = new Date().getMinutes();

        //选择日期 开始时间  结束时间
        var pickerData = pickerData.split('/');
        var pickerTime = pickerTime.split(':');
        var pickerTimeEnd = pickerTimeEnd.split(':');

        var dataFlg = false;
        //判断当前选择年份是否相等当前年份
        if (pickerData[0] == year) {
            //判断当前选择月份是否相等当前月份
            if (pickerData[1] == month) {
                //选择日 等于当前日 
                if (pickerData[2] == day) {
                    // 判断开始小时的 时 是否小于或者等于当前小时
                    if (pickerTime[0] < hours) {
                        //小于的话报错
                        dataFlg = true
                    }
                    //如果等于当前小时需要判断分钟
                    else if (pickerTime[0] == hours) {
                        //选择的分钟是否 小于等于当前分钟
                        if (pickerTime[1] <= minutes) {
                            //满足的话报错
                            dataFlg = true
                        }

                    }
                }
            }

        }
        //判断 结束的小时 小于开始的小时
        if (pickerTimeEnd[0] < pickerTime[0]) {
            dataFlg = true
        }
        //如果结束小时等于开始小时 就继续判断分钟 
        else if (pickerTimeEnd[0] == pickerTime[0]) {
            if (pickerTimeEnd[1] <= pickerTime[1]) {
                dataFlg = true
            }
        }
        //true 为时间段不正确 false为时间段正确
        return dataFlg
    }
上一篇下一篇

猜你喜欢

热点阅读