前言:
项目业务根据时间段筛选数据,自定义选择,本月选择都比较好处理,但对于本周时间段有一些争议,直接找的方法当前为周日时会计算为下一周的第一天,而需求是周一到周日为本周,因而自行更改逻辑
代码如下:(代码内自行处理了格式)
// 获取本周的开始时间和结束时间
const getWeekDates = () => {
// 获取当前日期
const today = new Date()
// 计算今天是一周的第几天
const dayOfWeek = today.getDay(); // 星期天是0,星期一是1
// 往前推一天到周日开始(如果是周一,则不需要)
let weekStart = new Date(today);
if (dayOfWeek !== 0) {
weekStart.setDate(weekStart.getDate() - dayOfWeek + 1);
} else {
weekStart.setDate(weekStart.getDate() - dayOfWeek - 6);
}
// 往后推一天到周日结束
let weekEnd = new Date(today);
if (dayOfWeek !== 0) {
weekEnd.setDate(weekEnd.getDate() + (7 - dayOfWeek));
} else {
weekEnd.setDate(weekEnd.getDate());
}
const start = `${weekStart.getFullYear()}-${(weekStart.getMonth() + 1) > 9 ? weekStart.getMonth() + 1 : '0' + (weekStart.getMonth() + 1)}-${weekStart.getDate() > 9 ? weekStart.getDate() : '0' + weekStart.getDate()}`
const end = `${weekEnd.getFullYear()}-${(weekEnd.getMonth() + 1) > 9 ? weekEnd.getMonth() + 1 : '0' + (weekEnd.getMonth() + 1)}-${weekEnd.getDate() > 9 ? weekEnd.getDate() : '0' + weekEnd.getDate()}`
return [start, end]
}
简单记录如有问题或更优解还请不要吝啬的共同沟通学习,此结。