1、根据年月获取该月的天数
/* 1、根据年月获取该月的天数 getdays(2019, 11)
year 年份----2019
month 月份----06 or 6
*/
function getdays(year, month) {
return new Date(year, month, 0).getDate();
}
2、根据年月日获取该月是第几周
/* 2、根据年月日获取该月是第几周 getMonthWeek(2019, 11, 6)
year 年份----2019
month 月份----11
data 日----06 or 6
*/
function getMonthWeek(year, month, data) {
var date = new Date(year, month - 1, data),
w = date.getDay(), //表示是周几 0-6
d = date.getDate(); //表示是几号 1-31
return Math.ceil((d + 6 - w) / 7); //当前日期d加上本周未过的时间6 - w 除以7向上取整得到本月是第几周
}
3、根据年月获取当前月有多少周 (年月)
/* 3、根据年月获取当前月有多少周 (年月) 根据当月的第一个周一是几号与本月天数相减 向上取整
year 年份----2019
month 月份----11
getWeeks(2019, 11)
*/
function getWeeks(year, month) {
// 该月第一天是周几 转换成1-7
var w1 = new Date(year, month - 1, 1).getDay();
if (w1 == 0) w1 = 7;
// 该月天数
var dd = new Date(year, month, 0).getDate()
// 第一个周一是几号 (7代表一周有7天 w1表示是周几 2代表的是周一在第二格)
let d1;
if (w1 != 1) d1 = (7 - w1) + 2;
else d1 = 1;
//从第一个周一是几号开始算起距离本月结束有多少天除以7向上取整
let week_count = Math.ceil((dd - d1 + 1) / 7);
return week_count;
}
4、根据年月日获取当前日期对应的7天的日期数
/*4、根据年月日获取当前日期对应的7天的日期数 getWeek('2019,11,06', 0)
target:'2019,11,06'
type:1 按照周一到周天 0按照周天到周六
*/
function getWeek(target, type) {
let now = new Date(target);
let now_day = now.getDay(); //周几 0-6
let now_time = now.getTime(); //时间戳
let result;
if (type === 0) {
result = [0, 1, 2, 3, 4, 5, 6]
}
if (type == 1) {
result = [1, 2, 3, 4, 5, 6, 7]
}
//当前周几跟本周的作对比判断是那几天 比方今天是周3
return result.map(i => (new Date(now_time + 24 * 60 * 60 * 1000 * (i - now_day))).getDate())
}
5、根据年月周获取获取当前周第一天是几号
/*5、根据年月周获取获取当前周第一天是几号 getCurWeekfirstDay(2019, 11, 1)
year 年份----2019
month 月份----11
Week 周数----1
*/
function getCurWeekfirstDay(year, month, Week) {
//获取当前的周第一天是几号
var w1 = new Date(year, month - 1, 1).getDay();
if (w1 == 0) w1 = 7;
// 该月天数
var dd = new Date(year, month, 0).getDate()
let d1;
if (w1 != 1) d1 = ((7 - w1) + 2) + 7 * (Week - 1);
else d1 = 1 + 7 * (Week - 1);
return d1;
}
6、根据年月周判断当前周的7天 依靠了前一个函数
/*6、根据年月周判断当前周的7天 依靠了前一个函数 getgetWeek1(2019, 11, 1, 0)
year 年份----2019
month 月份----11
Week 周数----1
type:1 按照周一到周天 0按照周天到周六
*/
function getgetWeek1(year, month, Week, type) {
//获取当前的周第一天是几号
// var w1 = new Date(year, month - 1, 1).getDay();
// if (w1 == 0) w1 = 7;
// // 该月天数
// var dd = new Date(year, month, 0).getDate()
// let d1;
// if (w1 != 1) d1 = ((7 - w1) + 2) + 7 * (Week - 1);
// else d1 = 1 + 7 * (Week - 1);
let days = getCurWeekfirstDay(year, month, Week)
let now = new Date(year, month, days);
let now_time = now.getTime(); //所传日期的时间戳
//规定周数的样式
let result;
if (type === 0) {
result = [0, 1, 2, 3, 4, 5, 6]
}
if (type == 1) {
result = [1, 2, 3, 4, 5, 6, 7]
}
//当前周几跟本周的作对比判断是那几天 比方今天是周3
return result.map(i => (new Date(now_time + 24 * 60 * 60 * 1000 * (i - 1))).getDate())
}