Layui 시간 제어 선택 시간

풀어 주다: 2020-06-13 18:05:00
앞으로
3459명이 탐색했습니다.

Layui 시간 제어 선택 시간

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: &#39;YYYY-MM-DD hh:mm:ss&#39;,
max: &#39;2099-06-16 23:59:59&#39;,
istoday: true,
choose: function (datas) {
end.min = datas; //开始日选好后,重置结束日的最小日期
}
};

var end = {
istime: true,
format: &#39;YYYY-MM-DD hh:mm:ss&#39;,
max: &#39;2099-06-16 23:59:59&#39;,
istoday: true,
choose: function (datas) {
start.max = datas; //结束日选好后,重置开始日的最大日期
}
};

document.getElementById(&#39;start_time&#39;).onclick = function () {
start.elem = this;
laydate(start);
};
document.getElementById(&#39;end_time&#39;).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([ &#39;laydate&#39;], function(){
var $ = layui.$;
var laydate = layui.laydate;
var nowTime = new Date().valueOf();
var max = null;

var start = laydate.render({
elem: &#39;#start_time&#39;,
type: &#39;datetime&#39;,
max: nowTime,
btns: [&#39;clear&#39;, &#39;confirm&#39;],
done: function(value, date){
endMax = end.config.max;
end.config.min = date;
end.config.min.month = date.month -1;
}
});
var end = laydate.render({
elem: &#39;#end_time&#39;,
type: &#39;datetime&#39;,
max: nowTime,
done: function(value, date){
if($.trim(value) == &#39;&#39;){
var curDate = new Date();
date = {&#39;date&#39;: curDate.getDate(), &#39;month&#39;: curDate.getMonth()+1, &#39;year&#39;: curDate.getFullYear()};
}
start.config.max = date;
start.config.max.month = date.month -1;
}
});
로그인 후 복사

시작 시간을 기준으로 종료 시간을 동적으로 제한합니다. 지식 포인트 유형: 'datetime', 시간, 분, 초로 구성된 날짜, 시간이 없는 날짜 , 분, 초

layui.use(&#39;laydate&#39;, function(){
   /* lay(&#39;.layui-input&#39;).each(function(){
  laydate.render({
    elem: this
    ,trigger: &#39;click&#39;
    ,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: &#39;#start_time&#39;,
        type: &#39;datetime&#39;,
        btns: [&#39;clear&#39;, &#39;confirm&#39;],
        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: &#39;#end_time&#39;,
        type: &#39;date&#39;,
        done: function(value, date){
        console.log(" ======  "+date);
            if($.trim(value) == &#39;&#39;){
                var curDate = new Date();
                date = {&#39;date&#39;: curDate.getDate(), &#39;month&#39;: curDate.getMonth()+1, &#39;year&#39;: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!