js方法
function formatNumber(n) {
return n.toString().length > 1 ? n : '0' + n
}
const getWeek = {
run: (year) => {
let days = getWeek.getDate(year || new Date().getFullYear())
let weeks = {};
for (let i = 0; i < days.length; i++) {
let weeksKeyLen = Object.keys(weeks).length;
let 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: (year) => {
let dates = [];
for (let i = 1; i <= 12; i++) {
for (let 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;
}
}
传参计算
getWeek.run('2023');
数据转换
// 周 数据转换
let arr = []
Object.keys(weekList).map(key => {
arr.push({
label: "第" + key + '周',
id: weekList[key]
})
})
结果