话不多说,直接说说我的思路。我用的是jquery;
1、先获取当前的年月;
var today = new Date();
//年份
var years = today.getFullYear();
//日
var day = today.getDate();
//月份。由于月份默认是从0开始的,所以这里加了1
var month = today.getMonth()+1;
2、获得本月的第一天是周几;
//月初第一天是周几
var firstWeek = today.getDay(today.setDate(1));
3、获取本月有几天。
//本月多少天 var days = new Date(years,month,0).getDate();
4、循环遍历本月的天数放到数组。
由于每月的第一天是周几不固定。所以往数组塞值的时候分成了两种情况:一种是本月的第一天是周日,这种情况顺序往数组插值就可以了。如果不是周日,则要判断第一天是周几,第一天之前的日期用0代替。
if( firstWeek != 0 ){
//每月第一天不是周日。就在数组中用0代替。在html代码中处理下。
for( let j = 0 ; j < firstWeek ; j ++){
weekArr.push(0);
}
}
for( let i = 1 ; i <days+1 ; i ++ ){
weekArr.push(i);
if( weekArr.length === 7 ){
weekAll.push(weekArr);