最近有一个需求,时间粒度选周的时候,如果今天是本周一就显示本周周一到周日,如果不是周一就显示下周周一周末,下面是查到的几种方法整理
获取本周周一周日
方法1
var now = new Date();
var nowTime = now.getTime() ;
var day = now.getDay();
var oneDayTime = 24*60*60*1000 ;
var MondayTime = nowTime - (day-1)*oneDayTime ;//显示周一
var SundayTime = nowTime + (7-day)*oneDayTime ;//显示周日
方法2
//开始日期周一
function getStart(){
var now = new Date();
var nowTime = now.getTime() ;
var day = now.getDay();
var oneDayLong = 24*60*60*1000 ;
var MondayTime = nowTime - (day-1)*oneDayLong ;
var monday = new Date(MondayTime);
var year = monday.getFullYear();
var month = monday.getMonth()+1;
var day = monday.getDate();
var day2 = monday.getDate()+5;
var startTime = year + '-' + month +'-'+day;
return startTime;
}
//结束时间 周日
function getEnd(){
var now = new Date();
var nowTime = now.getTime() ;
var day = now.getDay();
var oneDayLong = 24*60*60*1000 ;
var MondayTime = nowTime - (day-1)*oneDayLong ;
var monday = new Date(MondayTime);
var year = monday.getFullYear();
var month = monday.getMonth()+1;
var day = monday.getDate();
var day2 = monday.getDate()+5;
var endTime = year + '-' + month +'-'+day2;
return endTime;
}
获取下周周一周日
function getnextDat(day){
var Stamp = new Date();
var num = day-Stamp.getDay()+1;
Stamp.setDate(Stamp.getDate() + num);
var year = Stamp.getFullYear(); //获取完整的年份(4位,1970-????)
var month = Stamp.getMonth() +1; //获取当前月份(0-11,0代表1月)
var mvar ='';
if(month<10){
mvar = '0' + month;
}else{
mvar = month+'';
}
var day = Stamp.getDate();
var dvar ='';
if(day<10){
dvar = '0' + day;
}else{
dvar = day+'';
}
return year+"-"+mvar+'-'+dvar
}
getnextDat(7)//下周一
getnextDat(13)//下周日
My97DatePicker
onfocus /click
使用onfocus实时更换日历显示范围,和禁止显示的日期
<span>时间</span>
<input type="text" class="Wdate weekhourse" id='start_time' onFocus="checkStartTime()" />
<input type="text" class="Wdate weekhourse" id='end_time'onFocus="checkEndTime()" />
//js
function checkStartTime(){
var _params={
minDate:nowTime,
skin:'whyGreen',
dateFmt:'yyyy-MM-dd',
}
if($("#selectTime").find("option:selected").text()=='周'){
_params.disabledDays=[2,3,4,5,6]
}
WdatePicker(_params); //调用WdatePicker.js参数设置方法
}
function checkEndTime(){
//"WdatePicker({minDate:'#F{$dp.$D(\'start_time\')}',skin:'whyGreen',dateFmt:'yyyy-MM-dd'})"
var _params={
minDate: $("#start_time").val(),
skin:'whyGreen',
dateFmt:'yyyy-MM-dd',
}
if($("#selectTime").find("option:selected").text()=='周'){
_params.disabledDays=[2,3,4,5,6]
}
WdatePicker(_params); //调用WdatePicker.js参数设置方法
}
获取指定日期前一天
function getBeforeDay(d){
d = new Date(d);
d = +d - 1000*60*60*24;
d = new Date(d);
var year = d.getFullYear();
var mon = d.getMonth()+1;
var day = d.getDate();
s = year+"-"+(mon<10?('0'+mon):mon)+"-"+(day<10?('0'+day):day);
return s;
}
获取当前日期的前n天
function getBeforeDate(n) {
var n = n;
var d = new Date();
d.setDate(d.getDate() - n);
var year = d.getFullYear();
var mon = d.getMonth() + 1;
var day = d.getDate();
var s = year + "-" + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day);
return s;
}