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

获取本周的第一天(星期日)和最后一天(星期六)

Get First and Last Day of the current Week in JavaScript

要获取当前周的第一天和最后一天,请使用该setDate()方法将日期的月份日期更改为当前周的第一天和最后一天,并将结果传递给构造函数Date()

索引.js
const today = new Date(); // ✅ Get the first day of the current week (Sunday) const firstDay = new Date(today.setDate(today.getDate() - today.getDay())); // ✅ Get the last day of the current week (Saturday) const lastDay = new Date(today.setDate(today.getDate() - today.getDay() + 6)); console.log(firstDay); // 👉️ Sunday August 7 2022 console.log(lastDay); // 👉️ Saturday August 13 2022

上面的代码示例被认为Sunday是一周的第一天和
Saturday最后一天。

获取本周的第一天(星期一)和最后一天(星期日)

如果您的用例需要Monday是第一天和Sunday最后一天,请改用此代码段。

索引.js
const today = new Date(); // ✅ Get the first day of the current week (Monday) function getFirstDayOfWeek(d) { // 👇️ clone date object, so we don't mutate it const date = new Date(d); const day = date.getDay(); // 👉️ get day of week // 👇️ day of month - day of week (-6 if Sunday), otherwise +1 const diff = date.getDate() - day + (day === 0 ? -6 : 1); return new Date(date.setDate(diff)); } const firstDay = getFirstDayOfWeek(today); // ✅ Get the last day of the current week (Sunday) const lastDay = new Date(firstDay); lastDay.setDate(lastDay.getDate() + 6); console.log(firstDay); // 👉️ Monday August 8 2022 console.log(lastDay); // 👉️ Sunday August 14 2022

Date.getDate ()方法返回一个介于 1 和 31 之间的整数,表示给定 的月份中的第几天Date

Date.getDay方法返回一个介于 0 和 6 之间的整数,表示给定日期是星期几:0 是星期日,1 是星期一,2 是星期二,等等

一周的第一天是一个月中的第几天等于
day of the month - day of the week

如果您认为星期一是一周的第一天,请添加1到结果中。

一周的最后一天是一个月中的第几天等于
first day of the week + 6

最后一步是使用Date.setDate()
方法,该方法将月份中的日期作为参数,并在特定日期更改值。

setDate()方法返回 1970 年 1 月 1 日与给定日期之间的毫秒数。

为了获得表示一周第一天的新 Date 对象,我们将时间戳传递给Date()构造函数。

我们重复相同的过程来创建一个Date存储一周最后一天的对象。

如果您认为一周的第一天是星期一:

  1. 从月份中的日期减去星期几。
  2. 如果星期几是星期天,减去6得到星期一。
  3. 如果是其他任何一天,请添加,1因为该getDay方法返回一个从零开始的值。
索引.js
const today = new Date(); // ✅ Get the first day of the current week (Monday) function getFirstDayOfWeek(d) { // 👇️ clone date object, so we don't mutate it const date = new Date(d); const day = date.getDay(); // 👉️ get day of week // 👇️ day of month - day of week (-6 if Sunday), otherwise +1 const diff = date.getDate() - day + (day === 0 ? -6 : 1); return new Date(date.setDate(diff)); } const firstDay = getFirstDayOfWeek(today); // ✅ Get the last day of the current week (Sunday) const lastDay = new Date(firstDay); lastDay.setDate(lastDay.getDate() + 6); console.log(firstDay); // 👉️ Monday August 8 2022 console.log(lastDay); // 👉️ Sunday August 14 2022

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: