//项目所需以每周五为周第一天 周四结束 可在createYear 方法中修改 let dayTime = 1000 * 60 * 60 * 24; export const createYear = (year) => { let arr = []; let yearStart = new Date(`${year}-01-01`); let yearEnd = new Date(`${year}-12-31`); let startTime; if (yearStart.getDay() < 5) { startTime = yearStart.getTime() + (5 - yearStart.getDay()) * dayTime; } else if (yearStart.getDay() > 5) { startTime = yearStart.getTime() + 6 * dayTime; } else { startTime = yearStart.getTime(); } let endTime = yearEnd.getDay() < 4 ? yearEnd.getTime() + (4 - yearEnd.getDay()) * dayTime : yearEnd .getTime(); formatWeek(startTime, endTime, arr, 0); return arr } function formatWeek(start, end, weeks, index) { let currentTimes = new Date().getTime(); weeks.push({ week: index + 1, value: `${formatDate(start)}至${formatDate(start + 6 * dayTime)}`, weekValue: `第${index+1}周`, start: formatDate(start), end: formatDate(start + 6 * dayTime) }) if (start + 6 * dayTime < currentTimes && start + 6 * dayTime < end) { formatWeek(start + 7 * dayTime, end, weeks, index + 1) } } function formatDate(timer) { let times = new Date(timer); let [y, m, d] = [times.getFullYear(), times.getMonth() + 1, times.getDate()]; return `${y}-${m<10?'0'+m:m}-${d<10?'0'+d:d}` }