在JavaScript中获取本周的日期范围,通常指的是获取本周的第一天(通常是星期一)到最后一天的日期(通常是星期日)。以下是实现这一功能的示例代码,并附带相关解释:
function getThisWeekDates() {
const today = new Date();
const dayOfWeek = today.getDay(); // 0 (星期日) 到 6 (星期六)
const diffToMonday = dayOfWeek === 0 ? -6 : 1 - dayOfWeek; // 如果今天是星期日,则本周第一天为上周一;否则为本周一
const startOfWeek = new Date(today);
startOfWeek.setDate(today.getDate() + diffToMonday);
startOfWeek.setHours(0, 0, 0, 0); // 设置时间为当天的00:00:00.000
const endOfWeek = new Date(startOfWeek);
endOfWeek.setDate(startOfWeek.getDate() + 6); // 加6天得到本周日
endOfWeek.setHours(23, 59, 59, 999); // 设置时间为当天的23:59:59.999
return {
startOfWeek: startOfWeek.toISOString().split('T')[0], // 格式化为 YYYY-MM-DD
endOfWeek: endOfWeek.toISOString().split('T')[0]
};
}
const weekDates = getThisWeekDates();
console.log("本周开始日期:", weekDates.startOfWeek);
console.log("本周结束日期:", weekDates.endOfWeek);
Date
对象获取当前的日期和时间。getDay()
方法返回星期几,其中0代表星期日,6代表星期六。dayOfWeek === 0
),则本周的第一天是上周一,因此需要减去6天;否则,本周第一天是本周一,减去dayOfWeek - 1
天。setDate()
方法调整日期,并使用setHours()
方法设置具体的时间,以确保涵盖整个日期。YYYY-MM-DD
的形式,便于显示和后续处理。Date
对象的UTC方法或引入专门的日期处理库(如moment.js
或date-fns
)。通过上述方法,你可以轻松地在JavaScript中获取本周的日期范围,并根据具体需求进行进一步的处理和应用。
领取专属 10元无门槛券
手把手带您无忧上云