2022 年 09 月 20 日原创
0

JS 获取某年有多少周及每周日期

function formatNumber(n) {
    return n.toString().length > 1 ? n : '0' + n;
}

var getWeek = {
    run: function (year) {
        var days = getWeek.getDate(year || new Date().getFullYear())
        var weeks = {};

        for (var i = 0; i < days.length; i++) {
            var weeksKeyLen = Object.keys(weeks).length;
            var daySplit = days[i].split('_');

            if (weeks[weeksKeyLen] == undefined) {
                weeks[weeksKeyLen + 1] = [daySplit[0]]
            } else {
                if (daySplit[1] == '1') {
                    weeks[weeksKeyLen + 1] = [daySplit[0]]
                } else {
                    weeks[weeksKeyLen].push(daySplit[0])
                }
            }
         }
         return weeks
     },
     getDate: function (year) {
         var dates = []
         for (var i = 1; i <= 12; i++) {
             for (var j = 1; j <= new Date(year, i, 0).getDate(); j++) {
                  dates.push(year + '-' + formatNumber(i) + '-' + formatNumber(j) + '_' + new Date([year, i, j].join('-')).getDay())
             }
         }
         return dates
     }
}

命名、规范什么的不要介意,毕竟还可以再优化优化,运行之后获取到的结果如下: