当前位置:首页 > JavaScript

js实现上周

2026-04-05 07:09:05JavaScript

获取上周日期范围的方法

在JavaScript中,可以通过Date对象和相关方法计算上周的起始和结束日期。以下是几种常见实现方式:

方法一:基于当前日期计算

const today = new Date();
const dayOfWeek = today.getDay(); // 0是周日,6是周六
const diffToLastMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1 + 7; // 处理周日情况

const lastMonday = new Date(today);
lastMonday.setDate(today.getDate() - diffToLastMonday);
lastMonday.setHours(0, 0, 0, 0);

const lastSunday = new Date(lastMonday);
lastSunday.setDate(lastMonday.getDate() + 6);
lastSunday.setHours(23, 59, 59, 999);

方法二:使用固定天数偏移

const now = new Date();
const lastWeekStart = new Date(now.getFullYear(), now.getMonth(), now.getDate() - now.getDay() - 6);
const lastWeekEnd = new Date(lastWeekStart);
lastWeekEnd.setDate(lastWeekStart.getDate() + 6);

方法三:ISO周数计算(适用于国际化场景)

js实现上周

function getLastWeekRange() {
  const date = new Date();
  date.setDate(date.getDate() - 7);

  const day = date.getDay();
  const diff = date.getDate() - day + (day === 0 ? -6 : 1);
  const monday = new Date(date.setDate(diff));
  const sunday = new Date(monday);
  sunday.setDate(monday.getDate() + 6);

  return { start: monday, end: sunday };
}

注意事项

  • 周定义需明确:国内通常周一为起始日,西方部分国家以周日为起始日
  • 时间边界处理:建议将开始日设为00:00:00,结束日设为23:59:59
  • 跨月/跨年情况:JavaScript的Date对象会自动处理日期溢出

格式化输出示例

function formatDate(date) {
  return date.toISOString().split('T')[0]; // YYYY-MM-DD格式
}

const lastWeek = getLastWeekRange();
console.log(`上周: ${formatDate(lastWeek.start)} 至 ${formatDate(lastWeek.end)}`);

以上方法均可根据实际需求调整周起始日的定义(周一或周日)以及输出格式。

标签: 上周js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…