技术实践

Moment生成日历结构数据

简单实用的通过Moment生成日历结构数据,以及本周数据

羊先生的头像
羊先生2022.01.04 · 1 分钟阅读 · 347 阅读
Moment生成日历结构数据封面
文章正文还需 1 分钟

获取本周数据

js 复制代码
function weDateFormat() {
    let data = []
    let start = moment().startOf('weeks').format('YYYY-MM-DD');
    for (let i = 0; i < 7; i++) {
        let date: any = moment(start).add(i, 'day').format('YYYY/MM/DD')
        let week: any = moment(start).add(i, 'day').format('ddd')
        data.push({date, week})
    }
    console.table(data)
}
image.png

生成日历结构

js 复制代码
function monthDay() {
    const daysArr: Array<any> = [[], [], [], [], [], [], []]; // 6*7的日历数组
    const currentWeekday = moment().date(1).weekday(); // 获取当月1日为星期几
    const lastMonthDays = moment().subtract(1, 'month').daysInMonth(); // 获取上月天数
    const currentMonthDays = moment().daysInMonth(); // 获取当月天数
    const getDay = (day: any) => (day <= lastMonthDays ? day : (day <= (lastMonthDays + currentMonthDays)) ? day - lastMonthDays : day - (lastMonthDays + currentMonthDays)); // 日期处理
    for (let i = 0; i < 7; i += 1) {
        let virtualDay = (lastMonthDays - currentWeekday) + i + 1;
        for (let j = 0; j < 7; j += 1) {
            daysArr[j][i] = getDay(virtualDay + (j * 7))
        }
    }
    console.table(daysArr)
}
image.png