84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
求给个最佳实践, 对moment不熟(api看了一天了,基础的都了解了), 不想走冤枉路, 求给出最终 数据结构 就行, 比如[[26,27,28,1,2,3,4], [], [], ...]
感谢, 呜哈哈
欢迎选择我的课程,让我们一起见证您的进步~~
moment.js API里面好像没有看到直接生成日历的方法
monthDay(date) { const daysArr = [[], [], [], [], [], []]; // 6*7的日历数组 const currentWeekday = moment(date).date(1).weekday(); // 获取当月1日为星期几 const lastMonthDays = moment(date).subtract(1, 'month').daysInMonth(); // 获取上月天数 const currentMonthDays = moment(date).daysInMonth(); // 获取当月天数 const getDay = day => (day <= lastMonthDays ? day : (day <= (lastMonthDays + currentMonthDays)) ? day - lastMonthDays : day - (lastMonthDays + currentMonthDays)); // 日期处理 for (let i = 0; i < 7; i += 1) { let virtualDay = (lastMonthDays - currentWeekday) + i; for (let j = 0; j < 6; j += 1) { daysArr[j][i] = getDay(virtualDay + (j * 7)); } } console.table(daysArr); } ... monthDay(date); //date格式为moment能识别的格式 ...
大致想法:
构建一个6*7的数组daysArr
获取到上月天数、本月天数以及本月一号对应星期几(0表示周一)
然后计算出daysArr[0][0]对应的日期(上月天数 - 本月一号对应的星期)
daysArr[0][0]
根据daysArr[0][0]计算出daysArr其他元素的值
一维date数组可以思路:
const dates = [] for(let i = 0; i < 42; i+=1) { const startDate = moment('2017-05-20').date(1); dates[i] = startDate.weekday(i).date(); }; console.log(dates);
雷雷
moment.js API里面好像没有看到直接生成日历的方法
大致想法:
构建一个6*7的数组daysArr
获取到上月天数、本月天数以及本月一号对应星期几(0表示周一)
然后计算出
daysArr[0][0]
对应的日期(上月天数 - 本月一号对应的星期)根据
daysArr[0][0]
计算出daysArr其他元素的值一维date数组可以思路:
雷雷