zoukankan      html  css  js  c++  java
  • laydate控件 format: 'yyyy-MM-dd HH'时,初始化范围错误

    使用laydate控件,有开始时间和结束时间,开始时间最大值选择小于结束时间。

    当formate为年月日时分秒是,用以下用法初始化时没有问题,用法如下:

    var startDate;
        var endDate;
        if ($("#history-time").length > 0) {
            layui.use('laydate', function () {
                var laydate = layui.laydate;
                startDate = laydate.render({
                    elem: '#startTime',
                    max: $('#endTime').val(),
                    theme: 'molv',
                    trigger: 'click',
                    type: 'datetime',
                    min: '2019-01-01 00:00:00',
                    done: function (value, date) {
                        // 结束时间大于开始时间
                        if (value !== '') {
                            endDate.config.min.year = date.year;
                            endDate.config.min.month = date.month - 1;
                            endDate.config.min.date = date.date;
                            endDate.config.min.hours = date.hours;
                            endDate.config.min.minutes = date.minutes;
                            endDate.config.min.seconds = date.seconds;
                        } else {
                            endDate.config.min.year = '';
                            endDate.config.min.month = '';
                            endDate.config.min.date = '';
                            endDate.config.min.hours = '';
                            endDate.config.min.minutes = '';
                            endDate.config.min.seconds = '';
                        }
                    }
                });
                endDate = laydate.render({
                    elem: '#endTime',
                    min: $('#startTime').val(),
                    theme: 'molv',
                    trigger: 'click',
                    type: 'datetime',
                    done: function (value, date) {
                        // 开始时间小于结束时间
                        if (value !== '') {
                            startDate.config.max.year = date.year;
                            startDate.config.max.month = date.month - 1;
                            startDate.config.max.date = date.date;
                            startDate.config.max.hours = date.hours;
                            startDate.config.max.minutes = date.minutes;
                            startDate.config.max.seconds = date.seconds;
                        } else {
                            startDate.config.max.year = '';
                            startDate.config.max.month = '';
                            startDate.config.max.date = '';
                            startDate.config.max.hours = '';
                            startDate.config.max.minutes = '';
                            startDate.config.max.seconds = '';
                        }
                    }
                });
            });
        }

    //进入页面时填充时间
    $('#startTime').val('2020-11-02 14:00:00');
    $('#endTime').val('2020-11-02 14:30:00');

      但是当format: 'yyyy-MM-dd HH',此时初始化时开始时间和结束时间总是不能正确判断小时值的选择范围。

    解决办法:在初始化后,发现startDate.config.max=‘2020-11-02 14’,之后拼接上‘00:00’,这样初始化时可正确识别范围。

    var startDate;
        var endDate;
        if ($("#history-time").length > 0) {
            layui.use('laydate', function () {
                var laydate = layui.laydate;
                startDate = laydate.render({
                    elem: '#startTime',
                    max: $('#endTime').val(),
                    theme: 'molv',
                    trigger: 'click',
                    type: 'datetime',
                    min: '2019-01-01 00',
                    format: 'yyyy-MM-dd HH',
                    done: function (value, date) {
                        // 结束时间大于开始时间
                        if (value !== '') {
                            endDate.config.min.year = date.year;
                            endDate.config.min.month = date.month - 1;
                            endDate.config.min.date = date.date;
                            endDate.config.min.hours = date.hours;
                        } else {
                            endDate.config.min.year = '';
                            endDate.config.min.month = '';
                            endDate.config.min.date = '';
                            endDate.config.min.hours = '';
                        }
                    }
                });
                endDate = laydate.render({
                    elem: '#endTime',
                    min: $('#startTime').val(),
                    theme: 'molv',
                    trigger: 'click',
                    type: 'datetime',
                    format: 'yyyy-MM-dd HH',
                    done: function (value, date) {
                        // 开始时间小于结束时间
                        if (value !== '') {
                            startDate.config.max.year = date.year;
                            startDate.config.max.month = date.month - 1;
                            startDate.config.max.date = date.date;
                            startDate.config.max.hours = date.hours;
                        } else {
                            startDate.config.max.year = '';
                            startDate.config.max.month = '';
                            startDate.config.max.date = '';
                            startDate.config.max.hours = '';
                        }
                    }
                });
                //初始化时小时范围确定 重要
                startDate.config.max=startDate.config.max+':00:00';//变成'2020-11-02 14:00:00'后可正确识别选择范围
                 endDate.config.min=endDate.config.min+':00:00';
    });
    }
    //进入页面时填充时间
    $('#startTime').val('2020-11-02 14');
    $('#endTime').val('2020-11-02 14');

      

  • 相关阅读:
    Android 使用Application总结
    android数据保存
    Android 利用Application对象存取公共数据
    android 通过post方式提交数据的最简便有效的方法
    android http协议post请求方式
    maven下载及配置
    普通的101键盘在Mac上的键位对应
    高效使用你的Xcode
    maven安装及maven项目导入流程
    Mac键盘图标与对应快捷按键标志汇总
  • 原文地址:https://www.cnblogs.com/webttt/p/13914291.html
Copyright © 2011-2022 走看看