js实现上周
获取上周日期范围的方法
使用JavaScript获取上周的起始日期(周一)和结束日期(周日)可以通过以下代码实现:

function getLastWeekRange() {
const today = new Date();
const dayOfWeek = today.getDay(); // 0(周日)到6(周六)
const daysToLastMonday = (dayOfWeek + 6) % 7 + 7; // 计算到上周一的天数
const lastMonday = new Date(today);
lastMonday.setDate(today.getDate() - daysToLastMonday);
lastMonday.setHours(0, 0, 0, 0);
const lastSunday = new Date(lastMonday);
lastSunday.setDate(lastMonday.getDate() + 6);
lastSunday.setHours(23, 59, 59, 999);
return {
start: lastMonday,
end: lastSunday
};
}
格式化日期输出
如果需要将日期格式化为字符串,可以使用以下辅助函数:
function formatDate(date) {
return date.toISOString().split('T')[0];
// 或自定义格式:${date.getFullYear()}-${pad(date.getMonth()+1)}-${pad(date.getDate())}
}
function pad(num) {
return num.toString().padStart(2, '0');
}
获取上周每一天的日期
如果需要获取上周每一天的日期数组:
function getLastWeekDays() {
const { start } = getLastWeekRange();
const days = [];
for (let i = 0; i < 7; i++) {
const day = new Date(start);
day.setDate(start.getDate() + i);
days.push(day);
}
return days;
}
注意事项
- 该方法定义的"一周"是从周一到周日
- 如果需要周日作为一周的开始,调整
daysToLastMonday的计算逻辑 - 时区处理需根据实际需求调整,示例中使用的是本地时区







