获取本周的第一天(星期日)和最后一天(星期六)
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
存储一周最后一天的对象。
如果您认为一周的第一天是星期一:
- 从月份中的日期减去星期几。
- 如果星期几是星期天,减去
6
得到星期一。 - 如果是其他任何一天,请添加,
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
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: