迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

JavaScript 中获取本周的第一天

作者:迹忆客 最近更新:2023/04/11 浏览次数:

要获取当前周的第一天,请获取该月的第几天,减去星期几并加 1 以将星期一视为一周的第一天。

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));
}

// 👇️ 2022-12-05T13:58:25.780Z
console.log(getFirstDayOfWeek(new Date()));

JavaScript 中获取本周的第一天

如果认为星期日是一周的第一天,请向下滚动到下一个代码片段。

首先,我们创建一个新的日期对象,因此我们不会改变传入的日期。

我们使用 getDay 方法获取星期几。

此方法返回一个从 0(星期日)到 6(星期六)的整数。

然后我们使用 getDate 方法获取月份中的日期。

为了得到一周的第一天,我们从一个月中的第几天减去一周中的第几天。 如果星期几是星期日,我们减去 6 得到星期一,如果是任何其他日子我们加 1,因为 getDay 方法返回一个从零开始的值。

我们使用 setDate 方法更改 Date 对象的月份日期。

这就是我们在函数的第一行创建副本的原因。

如果我们将星期日视为一周的第一天,请改用此函数。

function getFirstDayOfWeek(d) {
  const date = new Date(d);
  const day = date.getDay();
  const diff = date.getDate() - day;

  return new Date(date.setDate(diff));
}

// 👇️ 2022-12-04T13:59:46.941Z
console.log(getFirstDayOfWeek(new Date()));

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便