( function () {
var nowDate = new Date();
var weekE = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'];
var dateArr = []; //保存当前日期所在周一周的日期
var now_year = nowDate.getFullYear(); //当前年
var now_month = nowDate.getMonth() + 1; //当前月
var now_date = nowDate.getDate(); //当前日期
var now_week = nowDate.getDay(); //当前星期几
var monthNum = 0; //当月天数
var prevMonthNum = 0; //上月天数
//获取某月的天数 该月所在年份,该月月份
function getDateNum(year, month) {
var n = new Date(year, month, 0);
return n.getDate();
}
//当月天数
monthNum = getDateNum(now_year, now_month, 0);
//获取上月天数 判断是否跨年情况
function getPrevMonth(year, month) {
var prevMN;
if(month == 1) {
prevMN = getDateNum(year - 1, 12);
}else {
prevMN = getDateNum(year, month, 0);
}
return prevMN
}
prevMonthNum = getPrevMonth(now_year, now_month);
//将星期转化为中文 week当前星期几
function changeM(week) {
return weekE[week - 1];
}
//给出当前日期所在周后几天日期 monthNum当月天数,now_date当前日期,now_week当前是星期几
function restDate(monthNum, now_date, now_week) {
var nextArr = []; //保存当前星期后几天日期
if (parseInt(monthNum - now_date) < parseInt(7 - now_week)) {
var overNum = parseInt(7 - now_week) - parseInt(monthNum - now_date); //超出天数
for(var j = parseInt(now_date + 1); j <= monthNum; j++) {
nextArr.push(j);
}
for(var i = 1; i<overNum + 1; i++) {
var nextNum = "0" + i;
nextArr.push(nextNum);
}
}else{
for (var i = 1; i <= parseInt(7 - now_week); i++) {
if(parseInt(now_date + i) <= 9) {
nextArr.push("0" + parseInt(now_date + i));
}else {
nextArr.push(parseInt(now_date + i));
}
}
}
return nextArr;
}
//给出当前日期所在周前几天日期 monthNum上月天数,now_date当前日期,now_week当前是星期几
function prevDate(monthNum, now_date, now_week) {
var prevArr = []; //保存当前星期前几天日期
if (parseInt(now_date) < parseInt(now_week)) {
var overNum = parseInt(now_week) - parseInt(now_date); //超出天数
for(var i = parseInt(monthNum - overNum + 1); i <= parseInt(monthNum); i++) {
prevArr.push(i);
}
for(var j = 1; j <= now_date; j++) {
prevArr.push("0" + j);
}
}else{
for (var i = 0; i < parseInt(now_week); i++) {
prevArr.push(parseInt(now_date - i));
}
prevArr.reverse();
}
return prevArr;
}
dateArr = prevDate(prevMonthNum, now_date, now_week).concat(restDate(monthNum, now_date, now_week));
})()
以上,dateArr 获取的则是当前日期所在周的日期。