在某个时间范围内选出所有符合条件的日期(星期几,月份中的几号)
2017-01-12 14:35
302 查看
最近在做项目的时候碰到了一个模块需要从某一日期范围内选取符合周一,二。。等的日期,研究了一下,代码贴出如下:
如上是html布局代码,有三个选项,在选中的日期范围内分别按照三个选项进行日期的选择,
js代码如下
控制器代码如下
最终效果如下:
<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)."'/> "; } } } //(逢日期) 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)."'/> "; } } }
最终效果如下:
相关文章推荐
- getdate() 返回日期时间数组(年、月、日、时、分、秒、一年中第几天、月中第几天、星期中第几天,几月份,星期几)
- PHP获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期
- 输入开始的dateTime、要显示的月份数、显示第几周的星期几,结束的时和分,输出符合上面条件的datetime list
- PHP获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期
- SqlServer查询日期时间范围条件
- 根据日期范围查询符合条件的数据
- PHP 如何获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期
- PHP 如何获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期
- PHP获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期
- 页面加载时显示日期时间星期几并自动更新
- 修正Raize的时间日期控件不能正确显示星期几的问题
- 游历数据库内所有名字符合条件的表
- 实用的SQL函数(用于将符合条件的某列所有记录合成一行)
- C#根据当前时间确定日期范围(本周、本月、本季度、本年度)
- C#根据当前时间确定日期范围(本周、本月、本季度、本年度)[转]
- 一个日期的扩展函数库包括计算周次和本周时间范围(javascript)
- C#根据当前时间确定日期范围(本周、本月、本季度、本年度及常见日期方法荟萃
- C#根据当前时间确定日期范围(本周、本月、本季度、本年度)
- 当搜索条件有时间日期的时候,程序出现String不能转化为Date
- SQL中获取指定两个日期时间点或者时间段内所有记录语句