在 JavaScript 中从日期中减去年份
从日期中减去年份:
-
使用
getFullYear()
方法获取特定日期的年份。 -
使用
setFullYear()
方法设置日期的年份。 -
setFullYear
方法将表示年份的数字作为参数并设置日期的值。
function subtractYears(numOfYears, date = new Date()) {
date.setFullYear(date.getFullYear() - numOfYears);
return date;
}
// 👇️ subtract 1 year from current Date
const result = subtractYears(1);
// 👇️ Subtract 2 years from another Date
const date = new Date('2022-04-26');
// 👇️ Sun Apr 26 2020
console.log(subtractYears(2, date));
我们创建了一个可重用的函数,它将年数和 Date 对象作为参数,并从日期中减去年数。
如果未提供
Date
对象,则该函数使用当前日期。
我们使用 getFullYear
方法来获取给定日期的年份。
setFullYear
方法将表示年份的整数作为参数,并设置日期的值。
注意,setFullYear
方法会改变调用它的 Date 对象。 如果不想就地更改日期,请在调用该方法之前创建一个副本。
function subtractYears(numOfYears, date = new Date()) {
const dateCopy = new Date(date.getTime());
dateCopy.setFullYear(dateCopy.getFullYear() - numOfYears);
return dateCopy;
}
const date = new Date('2022-04-27');
const result = subtractYears(3, date);
console.log(result); // 👉️ Sat Apr 27 2019
console.log(date); // 👉️ Wed Apr 27 2022 (didn't change original)
getTime 方法返回从 1970 年 1 月 1 日 00:00:00 到给定日期之间经过的毫秒数。
我们使用时间戳创建了
Date
对象的副本,因此在调用setFullYear
方法时我们不会对其进行原地修改。
当我们必须在代码的其他位置使用原始 Date 对象时,复制日期非常有用。
一般来说,改变函数参数是一种不好的做法,因为多次将相同的参数传递给同一个函数会返回不同的结果。
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
如何在 JavaScript 中合并两个数组而不出现重复的情况
发布时间:2024/03/23 浏览次数:86 分类:JavaScript
-
本教程介绍了如何在 JavaScript 中合并两个数组,以及如何删除任何重复的数组。