从 JavaScript 中的日期中减去周数
Subtract Weeks from a Date in JavaScript
从日期中减去周数:
- 使用该
getDate()
方法获取特定日期是月中的第几天。 - 使用该
setDate()
方法为日期设置月份中的第几天。 - 该
setDate
方法将一个月中的第几天作为参数并设置日期的值。
索引.js
function subtractWeeks(numOfWeeks, date = new Date()) { date.setDate(date.getDate() - numOfWeeks * 7); return date; } // 👇️ Subtract 1 week from current date const result = subtractWeeks(1); console.log(result); // 👇️ Subtract 2 weeks from another date // 👇️ Thu Feb 03 2022 console.log(subtractWeeks(2, new Date('2022-02-17')));
我们创建了一个可重用的函数,它接受周数和一个Date
对象,并从日期中减去周数。
如果没有Date
向函数提供对象,则它使用当前日期。
getDate()1
方法返回一个介于和之间的
整数,31
它代表日期所在月份的第几天。
要从一个月中的某天减去周数,我们必须减去每周的天数。
7
setDate()方法采用一个表示月份日期的
数字作为参数,并在Date
.
如果从日期中减去 X 周将我们推到前一个月或前一年,则JavaScriptDate
对象会自动负责调整月份和年份。
索引.js
const date = new Date('2022-04-01'); date.setDate(date.getDate() - 4 * 7); console.log(date); // 👉️ Fri Mar 04 2022
从日期中减去 4 周会自动调整示例中的月份。
请注意,该
setDate
方法会改变Date
调用它的对象。如果您不想Date
就地更改,可以在调用该方法之前创建它的副本。索引.js
function subtractWeeks(numOfWeeks, date = new Date()) { const dateCopy = new Date(date.getTime()); dateCopy.setDate(dateCopy.getDate() - numOfWeeks * 7); return dateCopy; } const date = new Date('2022-04-27'); const result = subtractWeeks(3, date); console.log(result); // 👉️ Wed Apr 06 2022 console.log(date); // 👉️ Wed Apr 27 2022
getTime方法返回从
1970 年 1 月 1 日 00:00:00 到给定日期之间经过的毫秒数。
我们使用时间戳来创建对象的副本,因此我们不会在调用方法
Date
时就地改变它。setDate
Date
当您必须在代码的其他地方使用原始对象时,复制日期非常有用。
一般来说,改变函数参数是一种不好的做法,因为将相同的参数多次传递给同一个函数会返回不同的结果。