如何在 JavaScript 中获取当前一周的第一天和最后一天

2022-08-30 04:30:49

我有异议。我需要获得当前一周的第一天和最后一天。我需要周日和周一的两种变体作为一周的开始和结束日。我现在对代码有点困惑。你能帮我吗?today = new Date();


答案 1
var curr = new Date; // get current date
var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week
var last = first + 6; // last day is the first day + 6

var firstday = new Date(curr.setDate(first)).toUTCString();
var lastday = new Date(curr.setDate(last)).toUTCString();

firstday
"Sun, 06 Mar 2011 12:25:40 GMT"
lastday
"Sat, 12 Mar 2011 12:25:40 GMT"

这适用于第一天 = 本周的星期日和最后一天 = 本周的星期六。将其扩展到周一到周日运行是微不足道的。

让它在不同月份的第一天和最后几天工作留给用户作为练习


答案 2

请注意接受的答案,它不会将时间设置为00:00:00和23:59:59,因此您可能会遇到问题。

您可以使用第三方日期库来处理日期。例如:

var startOfWeek = moment().startOf('week').toDate();
var endOfWeek   = moment().endOf('week').toDate();

编辑:截至2020年9月,不鼓励在新项目中使用Moment(博客文章))

另一个流行的替代方案是date-fns