之前在做一个项目其中一个子系统中遇到要根据每个月的第一天和最后一天,每周一和周日是哪天来取数据!所有就封装了两个函数 可以看看!函数返回值自己随便定,我是需要这样的所以这样子的!
获取到每月的第一天和最后一天 需要传入一个月份 如果忘记传入 取当前月份
//获取到每月的第一天和最后一天
getMonthFirstOrLaseDay:function(month){
var month=month || (new Date()).getMonth() //设置默认 如果不穿 取当前月份
var nowdays = new Date();
var year = nowdays.getFullYear();
if(month==0) {
month=12;
year=year-1;
}
if (month < 10) {
month = "0" + month;
}
var firstDay = year+'' + month+'' + "01";
var myDate = new Date(year, month, 0);
var lastDay = year+'' + month+'' + myDate.getDate();
return {firstDay:firstDay,lastDay:lastDay}
},
获取到每个月有几周,并且每周一和周日是哪天 如果不穿 默认取当年 当月
//获取到每个月有几周,并且每周一和周日是哪天
getAForWeeks:function (year, month) {
var year=year || (new Date()).getFullYear()
var month=month || (new Date()).getMonth()
var d = new Date();
// what day is first day
d.setFullYear(year, month-1, 1);
var w1 = d.getDay();
if (w1 == 0) w1 = 7;
// total day of month
d.setFullYear(year, month, 0);
var dd = d.getDate();
// first Monday
if (w1 != 1) d1 = 7 - w1 + 2;
else d1 = 1;
week_count = Math.ceil((dd-d1+1)/7);
var allWeek={};
for (var i = 0; i < week_count; i++) {
var monday = d1+i*7;
var sunday = monday + 6;
var from = year+''+this.fnToDub(month)+''+this.fnToDub(monday);
var to;
if (sunday <= dd) {
to = year+''+this.fnToDub(month)+''+this.fnToDub(sunday);
} else {
d.setFullYear(year, month-1, sunday);
to = d.getFullYear()+''+this.fnToDub((d.getMonth()+1))+''+this.fnToDub(d.getDate());
}
allWeek[(i+1)]={
from:from,
to:to
}
}
return {allWeek:allWeek,week_count:week_count}
},