在某个时间范围内选出所有符合条件的日期(星期几,月份中的几号)

3 篇文章 0 订阅

最近在做项目的时候碰到了一个模块需要从某一日期范围内选取符合周一,二。。等的日期,研究了一下,代码贴出如下:

<div class="span7"><input type="date" name="starttime" id="starttime"/></div>
<div class="span" style="float:left;margin-right:10px;"></div>
<div class="span7"><input type="date" name="endtime" id="endtime"/></div>
<div class="span9" id="datetype">
<label class="span">
    <input type="radio" value="0" name="rule" >逢星期
</label>
<label class="span">
    <input type="radio" value="1" name="rule">逢日期
</label>
<label class="span">
    <input type="radio" value="2" name="rule">按日期
</label>
</div>
</div>
<div id="datetype_cont">

//按星期选择
<div class="row-fluid1 clearfix" style="display:none;" id="weeks">
    <label class="span">
        <input type="checkbox" value="0">周日
    </label>
    <label class="span">
        <input type="checkbox" value="1">周一
    </label>
    <label class="span">
        <input type="checkbox" value="2">周二
    </label>
    <label class="span">
        <input type="checkbox" value="3">周三
    </label>
    <label class="span">
        <input type="checkbox" value="4">周四
    </label>
    <label class="span">
        <input type="checkbox" value="5">周五
    </label>
    <label class="span">
        <input type="checkbox" value="6">周六
    </label>                                    
</div>
//逢日期
<div class="row-fluid1 clearfix" style="display:none;" id="days">
    <label class="span">
        <input type="checkbox" value="01">01
    </label>
    <label class="span">
        <input type="checkbox" value="02">02
    </label>
    <label class="span">
        <input type="checkbox" value="03">03
    </label>
    <label class="span">
        <input type="checkbox" value="04">04
    </label>
    <label class="span">
        <input type="checkbox" value="05">05
    </label>
    <label class="span">
        <input type="checkbox" value="06">06
    </label>
    <label class="span">
        <input type="checkbox" value="07">07
    </label>
    <label class="span">
        <input type="checkbox" value="08">08
    </label>
    <label class="span">
        <input type="checkbox" value="09">09
    </label>
    <label class="span">
        <input type="checkbox" value="10">10
    </label>
    <label class="span">
        <input type="checkbox" value="11">11
    </label>
    <label class="span">
        <input type="checkbox" value="12">12
    </label>
    <label class="span">
        <input type="checkbox" value="13">13
    </label>
    <label class="span">
        <input type="checkbox" value="14">14
    </label>
    <label class="span">
        <input type="checkbox" value="15">15
    </label>
    <label class="span">
        <input type="checkbox" value="16">16
    </label>
    <label class="span">
        <input type="checkbox" value="17">17
    </label>
    <label class="span">
        <input type="checkbox" value="18">18
    </label>
    <label class="span">
        <input type="checkbox" value="19">19
    </label>
    <label class="span">
        <input type="checkbox" value="20">20
    </label>
    <label class="span">
        <input type="checkbox" value="21">21
    </label>
    <label class="span">
        <input type="checkbox" value="22">22
    </label>
    <label class="span">
        <input type="checkbox" value="23">23
    </label>
    <label class="span">
        <input type="checkbox" value="24">24
    </label>
    <label class="span">
        <input type="checkbox" value="25">25
    </label>
    <label class="span">
        <input type="checkbox" value="26">26
    </label>
    <label class="span">
        <input type="checkbox" value="27">27
    </label>
    <label class="span">
        <input type="checkbox" value="28">28
    </label>
    <label class="span">
        <input type="checkbox" value="29">29
    </label>
    <label class="span">
        <input type="checkbox" value="30">30
    </label>
    <label class="span">
        <input type="checkbox" value="31">31
    </label>                                                    
</div>

如上是html布局代码,有三个选项,在选中的日期范围内分别按照三个选项进行日期的选择,

js代码如下

 <script>
$(document).ready(function(){
$(document).on('click',"#weeks input[type = 'checkbox']",function(){
        var starttime = $('#starttime').val();
        var endtime = $('#endtime').val();
        var weeklist = $("#weeks input[type = 'checkbox']");
        var weeks='';
        for(var i=0;i<weeklist.length;i++){
         if(weeklist[i].checked) //取到对象数组后,我们来循环检测它是不是被选中
         weeks+=weeklist[i].value+',';   //如果选中,将value添加到变量s中    
        }
        //alert(weeks)
        if(weeks != ''){
            $.ajax({
                type: "POST",
                url:"__ROOT__/Linegroup/groupbyweek",
                data:{starttime:starttime,endtime:endtime,weeks:weeks},
                //dataType: "json",
                success: function(data) {
                    $('#dates').html(data);

                },
                error: function(error){
                    layer.alert('系统错误');
                }
            });
            }else{
                $('#dates').empty();
                }

       })

  $(document).on('click',"#days input[type = 'checkbox']",function(){
        var starttime = $('#starttime').val();
        var endtime = $('#endtime').val();
        var daylist = $("#days input[type = 'checkbox']");
        var days='';
        for(var i=0;i<daylist.length;i++){
         if(daylist[i].checked) //取到对象数组后,我们来循环检测它是不是被选中
         days+=daylist[i].value+',';   //如果选中,将value添加到变量s中    
        }
        //alert(days)
        if(days != ''){
            $.ajax({
                type: "POST",
                url:"__ROOT__/Linegroup/groupbyday",
                data:{starttime:starttime,endtime:endtime,days:days},
                //dataType: "json",
                success: function(data) {
                    $('#dates').html(data);

                },
                error: function(error){
                    layer.alert('系统错误');
                }
            });
            }else{
                $('#dates').empty();
                }

       })
})
</script>

控制器代码如下

//(逢星期)
    public function groupbyweek(){
        $starttime =strtotime($_POST['starttime']);
        $endtime = strtotime($_POST['endtime']);
        $weeks = $_POST['weeks'];
        $weeks = substr($weeks,0,-1);
        $weeks = explode(',',$weeks);
        //echo $weeks;
        //$weekarray = array("0","1","2","3","4","5","6");
        for($i=$starttime;$i<=$endtime;$i=$i+86400){
        if(in_array(date("w",$i),$weeks)){
            echo "<span>".date("Y-m-d",$i)."</span><input type='hidden' name='dateid[]' value='".date("Y-m-d",$i)."'/> &nbsp;&nbsp;";
            }
        }
        }   
    //(逢日期)
    public function groupbyday(){
        $starttime =strtotime($_POST['starttime']);
        $endtime = strtotime($_POST['endtime']);
        $days = $_POST['days'];
        $days = substr($days,0,-1);
        $days = explode(',',$days);
        //echo $days;
        //$dayarray = array("01","02","03","04","05","06","07","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
        for($i=$starttime;$i<=$endtime;$i=$i+86400){
            //echo date("d",$i);
        if(in_array(date("d",$i),$days)){
            echo "<span>".date("Y-m-d",$i)."</span><input type='hidden' name='dateid[]' value='".date("Y-m-d",$i)."'/> &nbsp;&nbsp;";
            }
        }
        }       

最终效果如下:
这里写图片描述

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值