如何在JavaScript中获取上周的起止日期和时间
获取上周起止时间的JavaScript实现
你的核心需求是无论当前处于本周的哪一天,都能精准获取上周的时间范围:上周日00:00 至 上周六23:59:59,现有代码仅能获取本周起止,只需对日期计算逻辑做简单调整即可实现需求。
修改后的代码实现
// 获取当前日期 var curr = new Date(); // 先计算本周第一天(周日)的日期,再减去7天得到上周日 var lastWeekStart = new Date(curr.getFullYear(), curr.getMonth(), curr.getDate() - curr.getDay() - 7); // 将上周日的时间设置为00:00:00 lastWeekStart.setHours(0, 0, 0, 0); // 上周六是上周日加6天 var lastWeekEnd = new Date(lastWeekStart); // 将上周六的时间设置为23:59:59 lastWeekEnd.setDate(lastWeekEnd.getDate() + 6); lastWeekEnd.setHours(23, 59, 59, 999); // 转为UTC格式字符串(和原代码输出格式一致) var firstday = lastWeekStart.toUTCString(); var lastday = lastWeekEnd.toUTCString(); console.log('上周起始时间:', firstday); console.log('上周结束时间:', lastday);
代码逻辑说明
- 上周日计算:先通过
curr.getDate() - curr.getDay()得到本周日的日期,再减去7天,就能定位到上周日的日期,之后手动将时分秒设为00:00:00,确保起始时间精准。 - 上周六计算:以上周日为基准,加6天得到上周六,再将时分秒设为23:59:59.999(用999毫秒避免因时间精度问题漏掉临界数据)。
- 动态适配:无论当前是周一到周日的任意一天,这个逻辑都会自动定位到上一周的完整时间范围,不会随本周内的日期变化而改变目标范围。
内容的提问来源于stack exchange,提问作者Abhigyan Gaurav
相关产品推荐
相关产品推荐

