jeDate日期控件在项目中实际应用

需求:
1:可提供日期不超过当前日期或者(验证选中日期是否超过今天)
2:日期验证
3:input表格里面获取当前系统默认日期
4:选着日期点击选中后点确定按钮才关闭
5:验证结束日期大于开始日期

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
        <title> </title>
        <link type="text/css" rel="stylesheet" href="jeDate-gh-pages/test/jeDate-test.css">
        <link type="text/css" rel="stylesheet" href="jeDate-gh-pages/skin/jedate.css">
        <script type="text/javascript" src="jeDate-gh-pages/src/jedate.js"></script>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    </head>
    <body>
        <input type="text" class="form-control input-medium" placeholder="开始时间" id="startTime" />
        <input type="text" class="form-control input-medium" placeholder="结束时间" id="endTime" />
        <button type="submit" id="btnsearch">搜索</button>
    </body>
    <script type="text/javascript">
        //可提供日期不超过当前日期
            Date.prototype.format = function(format) {
            var o = {
                "M+" : this.getMonth() + 1, // month
                "d+" : this.getDate(), // day
                "h+" : this.getHours(), // hour
                "m+" : this.getMinutes(), // minute
                "s+" : this.getSeconds(), // second
                "q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
                "S" : this.getMilliseconds()
            // millisecond
            };
            if (/(y+)/.test(format)) {
                format = format.replace(RegExp.$1, (this.getFullYear() + "")
                        .substr(4 - RegExp.$1.length));
            }
            for ( var k in o) {
                if (new RegExp("(" + k + ")").test(format)) {
                    format = format.replace(RegExp.$1,
                            RegExp.$1.length == 1 ? o[k] : ("00" + o[k])
                                    .substr(("" + o[k]).length));
                }
            }
            return format;
        };
        var nowt = new Date().format("yyyy-MM-dd");

        //选中后点确定按钮才关闭
        jeDate("#startTime", {
            onClose : true,
            theme : {
                bgcolor : "#00A1CB",
                color : "#ffffff",
                pnColor : "#00CCFF"
            },
            format : 'YYYY-MM-DD hh:mm:ss',
            maxDate : nowt
        });
        jeDate("#endTime", {
            onClose : true,
            theme : {
                bgcolor : "#00A1CB",
                color : "#ffffff",
                pnColor : "#00CCFF"
            },
            format : 'YYYY-MM-DD hh:mm:ss',
            maxDate : nowt
        });

        //默认input是系统当前时间选择
        var mydateInput = document.getElementById("startTime");
        var date = new Date();
        /*  date.setMonth(date.getMonth()-1); */
        var dateString = date.getFullYear() + "-" + (date.getMonth() + 1) + "-"
                + date.getDate() + "  " + "8:00:00";
        mydateInput.value = dateString;

        var mydateInputs = document.getElementById("endTime");
        var dates = new Date();
        var dateStrings = dates.getFullYear() + "-" + (dates.getMonth() + 1)
                + "-" + dates.getDate() + "  " + "18:00:00";
        mydateInputs.value = dateStrings;
        
        
        
        

        // 点击事件
        $("#btnsearch").click(function() {
            if(validate()) {
                return;
            }
        })
        // 验证年月
        function validate(numb) {
            if($("#startTime").val() == '') {
                alert("开始日期不可为空");

                return true;
            }
            if(diffDate($("#startTime").val()) == 0) {
                alert("开始日期不能超过当前日期");

                return true;
            }
            if($("#endTime").val() == '') {
                alert("结束日期不可为空");

                return true;
            }
            if(diffDate($("#endTime").val()) == 0) {
                alert("结束日期不能超过当前日期");

                return true;
            }
            if(validateDate($("#startTime").val(), $("#endTime").val())) {
                alert('结束日期不得小于开始日期')

                return true;
            }
            return false;
        }

        // 验证选中日期是否超过今天(和可提供日期不超过当前日期查不多需求)
        function diffDate(evalue) {
            var date = new Date(Date.parse(evalue.replace(/-/g, "/")));
            if(new Date() >= date) {
                return 1;
            }
            return 0;
        }

        // 验证结束日期大于开始日期
        function validateDate(beginTime, endTime) {
            var bd = new Date(Date.parse(beginTime));
            var ed = new Date(Date.parse(endTime));
            return bd > ed;
        }
    </script>
</html>

原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1
90后前端妹子,爱编程,爱运营,文艺与代码齐飞,魅力与智慧共存的程序媛一枚。

推荐阅读更多精彩内容