使用 JavaScript 获取上周一的日期
JavaScript 中要获取前一个星期一的日期:
- 将 6 加到星期几,得到除以 7 的余数。
- 从当月的第几天中减去结果。
function getPreviousMonday(date = new Date()) {
const previousMonday = new Date();
previousMonday.setDate(date.getDate() - ((date.getDay() + 6) % 7));
return previousMonday;
}
// 👇️ "Mon Jan 10 2022 15:45:00"
console.log(getPreviousMonday(new Date('2022-01-11')));
// 👇️ "Mon Jan 03 2022 15:45:00"
console.log(getPreviousMonday(new Date('2022-01-09')));
我们创建了一个可重用的函数,它将 Date
对象作为参数并返回前一个星期一。
如果未提供参数,则该函数返回当前日期的前一个星期一。
setDate
方法允许我们更改特定 Date 实例的月份日期。
该方法采用一个整数来表示一个月中的第几天。
为了回到上周一,我们:
-
将 6 添加到星期几,例如 星期二 =
2 + 6 = 8
。请注意,getDay() 方法返回星期日为 0、星期一为 1、星期二为 2 等的星期几。 - 使用模运算符得到除以 8 % 7 = 1 的余数。
- getDate() 方法返回一个月中的第几天,例如 11 - 1 = 10。
- 10 是前一个星期一所在月份的第几天。
请注意
,setDate
方法会在适当的位置改变 Date 对象,更改它的日期值。
我们创建了一个新的 Date() 对象并将其存储在 previousMonday 变量中以避免改变传入的 Date。
请注意,如果向函数传递的日期已经是星期一,它将按原样返回日期。
例如 2022-01-10
是星期一。
-
将 6 添加到凌晨的日期,例如 星期一 =
1 + 6 = 7
。 - 得到余数 - 7 % 7 = 0。
- 并从该月的第几天中减去结果 - 10 - 0 = 10。
- 该方法返回一个存储同一星期一的新日期。
如果想重新设置Date的时间,将时、分、秒、毫秒设置为0,可以使用 setHours()
方法。
function getPreviousMonday(date = new Date()) {
const previousMonday = new Date();
previousMonday.setDate(date.getDate() - ((date.getDay() + 6) % 7));
// 👇️ Reset hours, minutes, seconds, milliseconds to `0`
previousMonday.setHours(0, 0, 0, 0);
return previousMonday;
}
// 👇️ "Mon Jan 10 2022 00:00:00"
console.log(getPreviousMonday(new Date('2022-01-12')));
我们传递给 setHours
方法的四个参数是小时、分钟、秒和毫秒。
这会将返回日期的时间重置为午夜。
相关文章
仅在 MySQL 中按日期对日期时间列进行分组
发布时间:2023/05/09 浏览次数:75 分类:MySQL
-
本篇文章使用 GROUP BY 子句、COUNT() 和 DATE() 函数仅在 MySQL 中按 DATE 对 DATETIME 类型列进行分组。
MySQL 日期减法
发布时间:2023/05/08 浏览次数:95 分类:MySQL
-
本文介绍如何在MySQL中减去日期。MySQL 提供了根据工具中的需要更改和管理日期和时间的功能。此类函数的示例包括 concat 、reverse 、position 、min 、max 和 truncate 。
在 MySQL 中从日期时间类型转换为仅日期
发布时间:2023/05/08 浏览次数:87 分类:MySQL
-
本篇文章介绍如何使用 DATE()、CAST()、CONVERT() 和 DATE_FORMAT() 在 MySQL 中从日期时间类型转换为日期类型。在 MySQL 中从 DATETIME 类型转换为 DATE 类型
在 HTML 日期选择器中更改格式
发布时间:2023/05/06 浏览次数:151 分类:HTML
-
本篇文章是关于更改 HTML 日期选择器中的格式。在 HTML 日期选择器中更改格式 当 HTML5 添加日期输入时,许多人认为它会为用户提供一种熟悉、交互且友好的方式来在网站上输入日期。
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
MongoDB 中的日期比较
发布时间:2023/04/20 浏览次数:122 分类:MongoDB
-
本 MongoDB 教程介绍了如何在 MongoDB 中使用日期范围进行查询,在 MongoDB 中返回基于日期的查询,以及在 MongoDB 中比较两个日期。 此外,还解释了命令“$gte”、“$lte”、“$gt”和“$lt”。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。