Layui 시간 제어를 클리어 후 정상적으로 사용할 수 없는 문제를 해결하고, 시간 범위를 선택하세요
해결 방법은 두 가지가 있습니다.
방법 1(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); };
방법 2(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; } });
시작 시간을 기준으로 종료 시간을 동적으로 제한합니다. 지식 포인트 유형: 'datetime', 시간, 분, 초로 구성된 날짜, 시간이 없는 날짜 , 분, 초
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; } }); });
위의 코드를 사용하면 이미 시작 시간의 최대값과 종료 시간의 최소값을 동적으로 변경하는 것이 가능합니다. 직면하기 쉬운 함정에 대해 이야기해 보겠습니다.
Pit 1:laydate.render를 다시 렌더링할 수 없습니다.laydate.render에 해당하는 요소가 한 번 렌더링되면 다시 렌더링하여 최대값과 최소값을 수정할 수 없습니다. . 의.
함정 2: startDate.config.max 및 endDate.config.min은 문자열이 아닌 객체입니다. endDate.config.min="2017-01-01" 실제로 여기서 얻는 것은 객체입니다. from 최소값과 최대값을 렌더링할 때 문자열 값을 직접 할당해도 아무런 효과가 없습니다.
Pit 3: 날짜 형식은 endDate.config.min 형식과 동일하지만 endDate.config.min=dates를 직접 설정하면 원하는 결과가 나오지 않습니다. 날짜의 데이터는 선택한 날짜이지만 endDate.config.min에 설정된 월 값은 입력한 월 값보다 1개월 더 큽니다. 따라서 선택한 시작 날짜가 11월 13일인 경우 직접 할당합니다. endDate.config.min으로 이동하면 종료일의 최소 날짜가 12월 13일이 되는 것을 알 수 있으므로 날짜의 월 값을 1만큼 줄여서 endDate.config.min에 할당해야 합니다.
더 많은 layui지식을 보려면 PHP 중국어 웹사이트의layui 튜토리얼 칼럼을 주목하세요
위 내용은 Layui 시간 제어 선택 시간의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!