站長資訊網
        最全最豐富的資訊網站

        layui時間控件選擇時間

        layui時間控件選擇時間

        解決layui時間控件清空之后無法正常使用的問題,以及時間范圍的選擇

        共有兩種解決方式:

        方式一(layui 1.x):

        html代碼:

        <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="start_time" class="layui-input" id="start_time" placeholder="開始時間(修改時間)"> </div> </div> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="end_time" class="layui-input" id="end_time" placeholder="結束時間(修改時間)"> </div> </div> js代碼: var start = { istime: true, format: 'YYYY-MM-DD hh:mm:ss', max: '2099-06-16 23:59:59', istoday: true, choose: function (datas) { end.min = datas; //開始日選好后,重置結束日的最小日期 } };  var end = { istime: true, format: 'YYYY-MM-DD hh:mm:ss', max: '2099-06-16 23:59:59', istoday: true, choose: function (datas) { start.max = datas; //結束日選好后,重置開始日的最大日期 } };  document.getElementById('start_time').onclick = function () { start.elem = this; laydate(start); }; document.getElementById('end_time').onclick = function () { end.elem = this; laydate(end); };

        方式二(layui 2.x):

        html代碼

        <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="start_time" class="layui-input" id="start_time" placeholder="開始時間(修改時間)"> </div> </div> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="end_time" class="layui-input" id="end_time" placeholder="結束時間(修改時間)"> </div> </div> js代碼 layui.use([ 'laydate'], function(){ var $ = layui.$; var laydate = layui.laydate; var nowTime = new Date().valueOf(); var max = null;  var start = laydate.render({ elem: '#start_time', type: 'datetime', max: nowTime, btns: ['clear', 'confirm'], done: function(value, date){ endMax = end.config.max; end.config.min = date; end.config.min.month = date.month -1; } }); var end = laydate.render({ elem: '#end_time', type: 'datetime', max: nowTime, done: function(value, date){ if($.trim(value) == ''){ var curDate = new Date(); date = {'date': curDate.getDate(), 'month': curDate.getMonth()+1, 'year': curDate.getFullYear()}; } start.config.max = date; start.config.max.month = date.month -1; } });

        根據開始時間 動態限制結束時間 知識點 type: 'datetime', 是帶時分秒的 date 是不帶時分秒的

        layui.use('laydate', function(){    /* lay('.layui-input').each(function(){   laydate.render({     elem: this     ,trigger: 'click'     ,change: function(value, date, endDate){     console.log(value); //得到日期生成的值,如:2017-08-18     console.log(date); //得到日期時間對象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}     console.log(endDate); //得結束的日期時間對象,開啟范圍選擇(range: true)才會返回。對象成員同上。     }   }); });  */ var $ = layui.$;     var laydate = layui.laydate;    var nowTime = new Date().valueOf();     var max = null;        var start = laydate.render({         elem: '#start_time',         type: 'datetime',         btns: ['clear', 'confirm'],         done: function(value, date){             endMax = end.config.max;             end.config.min = date;             end.config.min.month = date.month -1;         },         change: function(value, date, endDate){         var timestamp2 = Date.parse(new Date(value)); timestamp2 = timestamp2 / 1000;             end.config.min = timestamp2;             end.config.min.month = date.month -1;     }     });     var end = laydate.render({         elem: '#end_time',         type: 'date',         done: function(value, date){         console.log(" ======  "+date);             if($.trim(value) == ''){                 var curDate = new Date();                 date = {'date': curDate.getDate(), 'month': curDate.getMonth()+1, 'year': curDate.getFullYear()};             }             start.config.max = date;             start.config.max.month = date.month -1;         }     }); });

        通過以上代碼,就已經可以實現動態改變開始時間最大值與結束時間最小值的改變了。下面來說一下容易遇到的坑:

        坑一 :laydate.render無法重復渲染,當laydate.render對應一個elem已經渲染過一次之后,我們是無法通過再次渲染來修改其中的max值與min值的。

        坑二 :startDate.config.max與endDate.config.min是一個對象,不是一個字符串,endDate.config.min="2017-01-01";實際這里得到的是一個對象,不同于在我們渲染時的min與max了,直接將字符串賦值必然沒有效果。

        坑三:dates的格式雖然與endDate.config.min格式相同但是直接讓endDate.config.min=dates你會發現并不是你想要的結果,是因為雖然dates中的數據是你選擇的日期,可是endDate.config.min中設置的month的值卻比你輸入的month的值大了一個月,因此假如你選的開始日期是11月13日,直接賦值給了endDate.config.min之后你會發現結束日期的最小日期變成了12月13日,因此我們需要將dates中的月份值減一后再賦值給endDate.config.min。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 2020亚洲男人天堂精品| 99在线观看视频免费精品9| 国产精品欧美一区二区三区不卡| 狠狠精品久久久无码中文字幕 | 国产精品免费久久久久影院| 久久精品国产亚洲AV电影| 欧美成人精品第一区二区三区 | 亚洲AV成人精品日韩一区18p| 亚洲综合精品一二三区在线| 97久久久久人妻精品专区| 亚洲精品卡2卡3卡4卡5卡区| 久久亚洲国产成人精品无码区| 99热亚洲精品6码| 日韩精品www| 精品一区二区三区四区| 国产第一福利精品导航| 久久99国产精品尤物| 婷婷精品国产亚洲AV麻豆不片| 亚洲av无码成人精品区在线播放| 777久久精品一区二区三区无码| 91精品啪在线观看国产| 久久久精品国产sm调教网站| 亚洲精品无码专区久久久| 日韩蜜芽精品视频在线观看| 欧美日韩国产成人高清视频,欧美日韩在线精品一| 中文字幕精品视频| 亚洲一二成人精品区| 永久免费精品视频| 99久久综合国产精品二区| 99久久伊人精品综合观看| 国产精品户外野外| 国产高清在线精品一区二区三区| 国产高清一级毛片精品| 国自产精品手机在线观看视| 精品伦精品一区二区三区视频| 精品无码国产污污污免费网站国产| 久久99精品久久久久久不卡| 欧美精品黑人粗大视频| 真实国产乱子伦精品一区二区三区 | 国产第一福利精品导航| 欧美精品免费观看二区|