1. 程式人生 > 實用技巧 >【Layui】15 日期時間選擇器 Laydate

【Layui】15 日期時間選擇器 Laydate

文件地址:

https://www.layui.com/demo/laydate.html

【基本案例】

基本日期與國際日期

<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
    <legend>常規用法</legend>
</fieldset>

<div class="layui-form">
    <div class="layui-form-item">
        <div class="layui-inline"
> <label class="layui-form-label">中文版</label> <div class="layui-input-inline"> <input type="text" class="layui-input" id="test1" placeholder="yyyy-MM-dd"> </div> </div> <div class="layui-inline"
> <label class="layui-form-label">國際版</label> <div class="layui-input-inline"> <input type="text" class="layui-input" id="test1-1" placeholder="yyyy-MM-dd"> </div> </div> </div> </div> <
script type="text/javascript"> layui.use('laydate', function(){ let laydate = layui.laydate; //常規用法 laydate.render({ elem: '#test1' }); //國際版 laydate.render({ elem: '#test1-1' ,lang: 'en' }); }); </script>

年選擇器:

設定屬性為年即可

type: 'year'

年月選擇器:

設定屬性為月即可,上一級的年也將保留攜帶

type: 'month'

時間選擇器:

僅能選擇時分秒:

type: 'time'

範圍設定:

開啟範圍設定,預設代表兩個月之內的天數範圍取值:

range: true

年範圍取值設定:

    ,type: 'year'
    ,range: true

年月範圍取值設定:

    ,type: 'month'
    ,range: true

時間範圍取值設定:

    ,type: 'time'
    ,range: true

日期時間範圍取值設定:

    ,type: 'datetime'
    ,range: true

【直接巢狀展示】

<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
    <legend>直接巢狀顯示</legend>
</fieldset>

<div class="site-demo-laydate">
    <div class="layui-inline" id="test-n1"></div>
    <div class="layui-inline" id="test-n2"></div>
    <div class="layui-inline" id="test-n3"></div>
    <div class="layui-inline" id="test-n4"></div>
</div>

<script type="text/javascript">
    layui.use('laydate', function(){
        let laydate = layui.laydate;

        //直接巢狀顯示
        laydate.render({
            elem: '#test-n1'
            ,position: 'static'
        });
        laydate.render({
            elem: '#test-n2'
            ,position: 'static'
            ,lang: 'en'
        });
        laydate.render({
            elem: '#test-n3'
            ,type: 'month'
            ,position: 'static'
        });
        laydate.render({
            elem: '#test-n4'
            ,type: 'time'
            ,position: 'static'
        });
    });
</script>

【主題色風格自定義】

<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
    <legend>其它主題</legend>
</fieldset>

<div class="layui-form">
    <div class="layui-form-item">
        <div class="layui-inline">
            <label class="layui-form-label">墨綠主題</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test29" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">自定義</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test30" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">格子主題</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test31" placeholder="yyyy-MM-dd">
            </div>
        </div>
    </div>
</div>

<script type="text/javascript">
    layui.use('laydate', function(){
        let laydate = layui.laydate;

        //墨綠主題
        laydate.render({
            elem: '#test29'
            ,theme: 'molv'
        });

        //自定義顏色
        laydate.render({
            elem: '#test30'
            ,theme: '#393D49'
        });

        //格子主題
        laydate.render({
            elem: '#test31'
            ,theme: 'grid'
        });
    });
</script>

【其他附屬功能】

<div class="layui-form">
    <div class="layui-form-item">
        <div class="layui-inline">
            <label class="layui-form-label">初始賦值</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test19" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">選中後的回撥</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test20" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">日期切換的回撥</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test21" placeholder="yyyy-MM-dd">
            </div>
        </div>

        <div class="layui-inline">
            <label class="layui-form-label">不出現底部欄</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test22" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">只出現確定按鈕</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test23" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">自定義事件</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test24" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label" id="test25-1">點我觸發</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test25" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label" id="test26-1">雙擊我觸發</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test26" placeholder="yyyy-MM-dd">
            </div>
        </div>

        <div class="layui-inline">
            <label class="layui-form-label">日期只讀</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test27" readonly="" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">非input元素</label>
            <div class="layui-input-inline">
                <div id="test28" style="height: 38px; line-height: 38px; cursor: pointer; border-bottom: 1px solid #e2e2e2;"></div>
            </div>
        </div>
    </div>
</div>

<script type="text/javascript">
    layui.use('laydate', function(){
        let laydate = layui.laydate;

        //初始賦值
        laydate.render({
            elem: '#test19'
            ,value: '1989-10-14'
            ,isInitValue: true
        });

        //選中後的回撥
        laydate.render({
            elem: '#test20'
            ,done: function(value, date){
                layer.alert('你選擇的日期是:' + value + '<br>獲得的物件是' + JSON.stringify(date));
            }
        });

        //日期切換的回撥
        laydate.render({
            elem: '#test21'
            ,change: function(value, date){
                layer.msg('你選擇的日期是:' + value + '<br><br>獲得的物件是' + JSON.stringify(date));
            }
        });
        //不出現底部欄
        laydate.render({
            elem: '#test22'
            ,showBottom: false
        });

        //只出現確定按鈕
        laydate.render({
            elem: '#test23'
            ,btns: ['confirm']
        });

        //自定義事件
        laydate.render({
            elem: '#test24'
            ,trigger: 'mousedown'
        });

        //點我觸發
        laydate.render({
            elem: '#test25'
            ,eventElem: '#test25-1'
            ,trigger: 'click'
        });

        //雙擊我觸發
        lay('#test26-1').on('dblclick', function(){
            laydate.render({
                elem: '#test26'
                ,show: true
                ,closeStop: '#test26-1'
            });
        });

        //日期只讀
        laydate.render({
            elem: '#test27'
            ,trigger: 'click'
        });

        //非input元素
        laydate.render({
            elem: '#test28'
        });
    });
</script>

【公曆節日,自定義重要日期】

<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
    <legend>公曆節日和自定義重要日子</legend>
</fieldset>

<div class="layui-form">
    <div class="layui-form-item">
        <div class="layui-inline">
            <label class="layui-form-label">開啟公曆節日</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test17" placeholder="yyyy-MM-dd">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">自定義重要日</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" id="test18" placeholder="yyyy-MM-dd">
            </div>
        </div>
    </div>
</div>

<script type="text/javascript">
    layui.use('laydate', function(){
        let laydate = layui.laydate;

        //開啟公曆節日
        laydate.render({
            elem: '#test17'
            ,calendar: true
        });

        //自定義重要日
        laydate.render({
            elem: '#test18'
            ,mark: {
                '0-10-14': '生日'
                ,'0-12-31': '跨年' //每年的日期
                ,'0-0-10': '工資' //每月某天
                ,'0-0-15': '月中'
                ,'2017-8-15': '' //如果為空字元,則預設顯示數字+徽章
                ,'2099-10-14': '呵呵'
            }
            ,done: function(value, date){
                if(date.year === 2017 && date.month === 8 && date.date === 15){ //點選2017年8月15日,彈出提示語
                    layer.msg('這一天是:中國人民抗日戰爭勝利72週年');
                }
            }
        });
    });
</script>