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

新手上路,请多包涵

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

原文由 Petya petrov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答
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"

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

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

原文由 Raynos 发布,翻译遵循 CC BY-SA 2.5 许可协议

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

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

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

编辑:自 2020 年 9 月起,不鼓励对新项目使用 Moment( 博客文章

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

原文由 Bruno Lemos 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题