Laydate实现季度选择器、半年度选择器

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>季度半年度选择器</title>

    <style>
    body{padding: 20px;}
    .demo-input{padding-left: 10px; height: 38px; min-width: 262px; line-height: 38px; border: 1px solid #e6e6e6;  background-color: #fff;  border-radius: 2px;}
    .demo-footer{padding: 50px 0; color: #999; font-size: 14px;}
    .demo-footer a{padding: 0 5px; color: #01AAED;}
    </style>
    <script src="laydate/jquery-1.11.1.min.js"></script> <!-- 改成你的路径 -->
    <script src="laydate/laydate.js"></script> <!-- 改成你的路径 -->
</head>

<body>
    <input type="text" class="demo-input" placeholder="请选择季度" id="season">
    <input type="text" class="demo-input" placeholder="请选择半年度" id="year">
    <input type="text" class="demo-input" placeholder="" id="reporting_date">



    <script>
        function seasonFunction(){
            renderSeasonDate(document.getElementById('season'), 1);
            function renderSeasonDate(ohd, sgl) {
                var ele = $(ohd);
                laydate.render({
                    elem: ohd,
                    theme: '#428bca',
                    type: 'month',
                    format: 'yyyy-第M季度',
                    range: sgl ? null : '~',
                    min: "1900-1-1",
                    max: "2999-12-31",
                    btns: ['confirm'],
                    ready: function () {
                        var hd = $("#layui-laydate" + ele.attr("lay-key"));
                        if (hd.length > 0) {
                            hd.click(function () {
                                ren($(this));
                            });
                        }
                        ren(hd);
                    },

                    done: function (value) {
                        var finaltime = '';
                        if (value){
                            value = value.split('-');
                            var year = value[0];
                            var season = value[1];
                            if (season == '第1季度'){
                                var timeend = '03-31';
                                finaltime =  year + '-' + timeend;
                            }
                            if (season == '第2季度'){
                                var timeend = '06-30';
                                finaltime =  year + '-' + timeend
                            }
                            if (season == '第3季度'){
                                var timeend = '09-30';
                                finaltime = year + '-' + timeend
                            }
                            if (season == '第4季度'){
                                var timeend = '12-31';
                                finaltime = year + '-' + timeend
                            }
                        }
                        $('#reporting_date').val(finaltime);
                    
                    }

                });
                var ren = function (thiz) {
                    var mls = thiz.find(".laydate-month-list");
                    mls.each(function (i, e) {
                        $(this).find("li").each(function (inx, ele) {
                            var cx = ele.innerHTML;
                            if (inx < 4) {
                                ele.innerHTML = cx.replace(/月/g, "季度").replace(/一/g, "第1").replace(/二/g, "第2").replace(/三/g, "第3").replace(/四/g, "第4");
                            } else {
                                ele.style.display = "none";
                            }
                        });
                    });
                }
            }
        }
        seasonFunction()

        function yearFunction(){
            renderYearDate(document.getElementById('year'), 1);
            function renderYearDate(ohd, sgl) {
                var ele = $(ohd);
                laydate.render({
                    elem: ohd,
                    theme: '#428bca',
                    type: 'month',
                    format: 'yyyy-h半年',
                    range: sgl ? null : '~',
                    min: "1900-1-1",
                    max: "2999-12-31",
                    btns: [ 'confirm'],
                    ready: function () {
                        var hd = $("#layui-laydate" + ele.attr("lay-key"));
                        if (hd.length > 0) {
                            hd.click(function () {
                                ren($(this));
                            });
                        }
                        ren(hd);
                    },

                    done: function (value) {
                        var finaltime = '';
                        if (value){
                            value = value.split('-');
                            var year = value[0];
                            var halfyear = value[1];

                            if (halfyear == '上半年'){
                                var timeend = '06-30';
                                finaltime = year + '-' + timeend
                            }
                            if (halfyear == '下半年'){
                                var timeend = '12-31';
                                finaltime = year + '-' + timeend
                            }
                        }
                        $('#reporting_date').val(finaltime);
                    
                    }

                });
                var ren = function (thiz) {
                    var mls = thiz.find(".laydate-month-list");
                    mls.each(function (i, e) {
                        $(this).find("li").each(function (inx, ele) {
                            var cx = ele.innerHTML;
                            if (inx < 2) {
                                cx = cx.replace(/月/g, "半年");
                                ele.innerHTML = cx.replace(/一/g, "上").replace(/二/g, "下");

                            } else {
                                ele.style.display = "none";
                            }
                        });
                    });
                }
            }
        }
        yearFunction()
    </script>
</body>

</html>

链接: https://pan.baidu.com/s/1wZK50A3Kyb48UfUrUEc4Tw

提取码: y5if

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!感谢您的提问。如果您想要使用 laydate 设置两个时间选择器后面的时间大于前面的,您可以使用 laydate 的 `range` 参数来实现。具体步骤如下: 1. 在 HTML 中定义两个文本框,分别作为起始时间和结束时间的输入框。 ```html <input type="text" name="start" id="start" placeholder="请选择起始时间"> <input type="text" name="end" id="end" placeholder="请选择结束时间"> ``` 2. 在 JavaScript 中引入 laydate,并使用 `laydate.render()` 方法来渲染时间选择器。在 `laydate.render()` 的参数中,您可以通过 `range: true` 来启用时间范围选择器;通过 `min` 和 `max` 参数来设置起始时间和结束时间的最小值和最大值,从而实现后面的时间大于前面的效果。 ```javascript layui.use('laydate', function(){ var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ elem: '#start', //起始时间的输入框 type: 'datetime', //选择器类型为日期时间 format: 'yyyy-MM-dd HH:mm:ss', //日期时间的格式 range: true, //启用时间范围选择器 max: '2099-06-16 23:59:59', //设置结束时间的最大值 done: function(value, date){ //选择起始时间后,更新结束时间的最小值 endTime.min = value; endTime.start = value; } }); //执行一个laydate实例 var endTime = laydate.render({ elem: '#end', //结束时间的输入框 type: 'datetime', //选择器类型为日期时间 format: 'yyyy-MM-dd HH:mm:ss', //日期时间的格式 range: true, //启用时间范围选择器 min: '1970-01-01 00:00:00', //设置起始时间的最小值 done: function(value, date){ //选择结束时间后,更新起始时间的最大值 startTime.max = value; } }); //起始时间的laydate实例 var startTime = laydate.render({ elem: '#start', //起始时间的输入框 type: 'datetime', //选择器类型为日期时间 format: 'yyyy-MM-dd HH:mm:ss', //日期时间的格式 range: true, //启用时间范围选择器 max: '2099-06-16 23:59:59', //设置结束时间的最大值 done: function(value, date){ //选择起始时间后,更新结束时间的最小值 endTime.min = value; endTime.start = value; } }); }); ``` 以上代码中,我们定义了三个 laydate 实例:`startTime` 用于起始时间的选择,`endTime` 用于结束时间的选择,`laydate.render()` 参数中的 `done` 回调函数用于更新起始时间和结束时间的最大值和最小值。 希望以上代码可以帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值