JS 根据年和周获取起止时间周一为开始时间,周日为结束时间
时间: 2023-11-14 12:01:51 浏览: 151
ASP.NET获取本天、周、月、年的起止时间
5星 · 资源好评率100%
可以使用 JavaScript 中的 Date 对象来实现根据年份和周数获取起止时间的功能。下面是一个示例代码:
```javascript
function getWeekRange(year, week) {
// 获取指定年份的第一天
const firstDayOfYear = new Date(year, 0, 1);
// 获取指定年份的第一周的第一天
const firstWeekDay = new Date(firstDayOfYear.setDate(firstDayOfYear.getDate() + (1 - firstDayOfYear.getDay() + 7) % 7));
// 计算指定周数的起始日期
const startOfWeek = new Date(firstWeekDay.setDate(firstWeekDay.getDate() + (week - 1) * 7));
// 计算指定周数的结束日期
const endOfWeek = new Date(startOfWeek);
endOfWeek.setDate(endOfWeek.getDate() + 6);
return {
start: startOfWeek,
end: endOfWeek
};
}
// 示例调用
const year = 2022;
const week = 9;
const weekRange = getWeekRange(year, week);
console.log(weekRange.start); // 输出起始时间(周一)
console.log(weekRange.end); // 输出结束时间(周日)
```
在上面的示例中,`getWeekRange` 函数接受年份和周数作为参数,首先获取指定年份的第一天,然后计算出第一周的第一天。接着根据指定的周数,通过增加相应的天数,得到该周的起始日期和结束日期。最后,返回一个包含起始时间和结束时间的对象。
请注意,JavaScript 中的 Date 对象中的月份是从 0 开始的,所以在构造 Date 对象时需要将月份减 1。另外,由于每周的起始日期可能因地区而异(有些地区的周一可能不是起始日期),所以在计算第一周的第一天时,使用了 `(1 - firstDayOfYear.getDay() + 7) % 7` 来确保获取到的是周一。
阅读全文