您的位置:首页 > 其它

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

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

<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)."'/>   ";
}
}
}


最终效果如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐