【问题标题】:Calendar matrix - by momentjs and typescript日历矩阵 - 由 momentjs 和 typescript
【发布时间】:2018-04-17 08:04:29
【问题描述】:

你好,如果你需要创建这样的东西 - 日历中的日期选择器,请看我的回答。

【问题讨论】:

    标签: typescript matrix calendar momentjs


    【解决方案1】:

    此方法获取年份和月份,并返回 [weeks][days] 的矩阵来构建日历视图。

    private getMonthCalendar(year: number, month: number) : Moment[][]
    {
        const startDate: Moment = moment({ year: this.model.actualYear, month: this.model.actualMonth }).startOf('month');  //first day of month
        const endDay: Moment = moment(startDate).add(1, 'month').add(-1, 'day'); // last day of month
    
        // From first to last day of month, get index of all weeks to display
        const weeks: Dictionary<string, { week, year }> = new Dictionary();
        for (let day: Moment = moment(startDate); endDay.diff(day) >= 0; day.add(1, 'day'))
        {
            let key = day.isoWeekYear() + "_" + day.isoWeek();
            if (!weeks.containsKey(key))
            {
                weeks.setValue(key, { week: day.isoWeek(), year: day.isoWeekYear() });
            }
        }
    
        // lets build the calendar
        var calendar = [];
        weeks.forEach((index, week) =>
        {
            // Get seven days for every week
            var weekDays = [];
            for (var d = 1; d <= 7; d++)
            {
                weekDays.push(moment().isoWeekYear(week.year).isoWeek(week.week).day(d));
            }
            calendar.push(weekDays);
        });
        return calendar;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 2016-02-12
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多