最近在给本校老师做一个简单的预约录课系统,需要根据所选择的当前学期的周次,得到该周次的七个日期,js的实现方法如下:
首先在html中有下拉框选择周次的代码:
<select class="form-control" name="code" id="code">
<option value="">==按周次查看==</option>
<option value="1">第1周</option>
<option value="2">第2周</option>
<option value="3">第3周</option>
<option value="4">第4周</option>
<option value="5">第5周</option>
<option value="6">第6周</option>
<option value="7">第7周</option>
<option value="8">第8周</option>
<option value="9">第9周</option>
<option value="10">第10周</option>
<option value="11">第11周</option>
<option value="12">第12周</option>
<option value="13">第13周</option>
<option value="14">第14周</option>
<option value="15">第15周</option>
<option value="16">第16周</option>
<option value="17">第17周</option>
<option value="18">第18周</option>
</select>
<button id="searchBtn" class="btn btn-labeled btn-info" onclick="javascript:showCourse();"><span class="btn-label icon fa fa-search"></span>搜索</button>
然后通过点击事件触发showCourse()函数获取日期:
function showCourse() {
var week_choose=document.getElementById("code").value;//获取下拉框选中的周次
if(week_choose==""){
alert("请选择周次!");
return;
}
//开始查询日期
var date = new Date(2019,1,24);//设置初始开学日期,注意:这里第二个参数1表示2月,即开学日期为2019年2月24日
for(var ii=1;ii<8;ii++){//默认星期一为每周的起点
if(ii==1){//如果是每周的星期一,需要添加周期,其他的每天加一就行了,因为data的值会跟着setDate()而发生变化。
date.setDate(date.getDate()+(week_choose-1)*7+1);//js中字符串和整型是可以做整数减法的,但加法就是字符串相加
}
else{
date.setDate(date.getDate()+1);
}
console.log("开学第"+week_choose+"周的星期"+ii+"的日期为:");
//date.getMonth()是从0开始的,所以实际月份需要+1
console.log(date.getFullYear() +"年"+ (date.getMonth()+1) +"月"+ date.getDate()+"日");
}
}
因为这些信息后面要导出到Excel中,所以之后会给出服务器端用java实现的代码。
如果你有更简单的方法或者更好的思路,请留言指教。