使用 JavaScript 获取 X 天前的日期

使用 JavaScript 获取 X 天前的日期

Get a Date of X days ago using JavaScript

要获得 X 天前的日期,请使用该setDate()方法将日期设置为当月的当前日期减去天数,例如
daysAgo.setDate(date.getDate() - numOfDays)setDate()方法更改给定日期的月份中的第几天。

索引.js
function getDateXDaysAgo(numOfDays, date = new Date()) { const daysAgo = new Date(date.getTime()); daysAgo.setDate(date.getDate() - numOfDays); return daysAgo; } const date = new Date('2022-01-17'); // 👇️ Sat Jan 15 2022 09:28:20 console.log(getDateXDaysAgo(2, date)); // 👇️ Wed Jan 12 2022 09:28:20 console.log(getDateXDaysAgo(5, date));

我们创建了一个可重用的函数,它返回 X 天前的日期。

该函数采用的第一个参数是要从当月的当前日期减去的天数。

第二个参数是Date要减去天数的对象。

如果要获取距当前日期 X 天前的日期,请在调用该函数时省略第二个参数。

索引.js
function getDateXDaysAgo(numOfDays, date = new Date()) { const daysAgo = new Date(date.getTime()); daysAgo.setDate(date.getDate() - numOfDays); return daysAgo; } const date = new Date('2022-01-17'); // 👇️ Wed Jan 12 2022 09:37:40 console.log(getDateXDaysAgo(5));

如果没有Date提供对象作为第二个参数,该函数将使用当前日期。

daysAgo变量中,我们Date使用提供的时间戳创建了一个新对象Date

我们这样做是因为该setDate()方法改变了它被调用的位置。 Date

我们使用
setDate()
方法更改 X 天前某个日期的月份日期。

请注意,DateJavaScript 中的对象会自动处理必须回滚月份(和年份)的场景。

这是一个例子。

索引.js
function getDateXDaysAgo(numOfDays, date = new Date()) { const daysAgo = new Date(date.getTime()); daysAgo.setDate(date.getDate() - numOfDays); return daysAgo; } const date = new Date('2022-01-17'); // 👇️ Fri Dec 31 2021 console.log(getDateXDaysAgo(17, date));

我们得到了 1 月 17 日之前 17 天的日期,它回滚了创建Date对象时的月份和年份。

如果您还想将日期的时间部分重置为午夜,可以使用该setHours()方法。

索引.js
function getDateXDaysAgo(numOfDays, date = new Date()) { const daysAgo = new Date(date.getTime()); daysAgo.setDate(date.getDate() - numOfDays); daysAgo.setHours(0, 0, 0, 0); return daysAgo; } const date = new Date('2022-01-17'); // 👇️ Fri Dec 31 2021 00:00:00 console.log(getDateXDaysAgo(17, date));

我们传递给该setHours()方法的 4 个参数是hoursminutes
secondsmilliseconds

这具有将 Date 的时间部分重置为午夜的效果。

发表评论