将一年添加到今天的日期

IT技术 javascript date
2021-01-24 10:51:05

我正在尝试为今天的日期添加一年。我在一个不允许您使用standardJavaScript的系统中工作

例如,要获得今天的日期,我必须使用:

javascript:now();

我努力了:

javascript:now(+1);

我以前从未见过这个,但我需要在今天的日期上增加一年......

有没有人以前见过这种方式获取当前日期?如果是这样,我怎么能增加一年?

6个回答

您可以使用以下代码创建具有今天日期的新日期对象:

var d = new Date();
    console.log(d);
// => 2015 年 10 月 11 日星期日 14:46:51 GMT-0700 (PDT)

如果要在特定时间创建日期,可以传递新的 Date 构造函数参数

 var d = new Date(2014);
    console.log(d)

// => Wed Dec 31 1969 16:00:02 GMT-0800 (PST)

如果要取今天的日期加上年份,可以先创建一个日期对象,访问相关属性,然后使用它们来创建一个新的日期对象

var d = new Date();
    var year = d.getFullYear();
    var month = d.getMonth();
    var day = d.getDate();
    var c = new Date(year + 1, month, day);
    console.log(c);

// => Tue Oct 11 2016 00:00:00 GMT-0700 (PDT)

您可以在 MDN 上阅读有关日期对象的方法的更多信息

日期对象

但你也会失去原来的日期
2021-03-22 10:51:05
然后:var d = new Date(+originalDate)将复制原始日期。
2021-03-25 10:51:05
@ANP 不,它返回 01/03/2017,这可能仍然不是必需的,但它绝对不会返回不存在的日期 29/02/2017。请记住,在 JavaScript 中,二月是 1,而不是 2。
2021-03-29 10:51:05
无需创建两个日期对象。d.setFullYear(d.getFullYear() + 1)将以更少的代码完成这项工作。
2021-03-30 10:51:05
这不适用于闰年日期。例如,如果您在添加一年后输入 29/02/2016,它将返回 29/02/2017,这是不正确的。
2021-04-02 10:51:05

使用Date.prototype.setFullYear方法将年份设置为您想要的年份。

例如:

const aYearFromNow = new Date();
aYearFromNow.setFullYear(aYearFromNow.getFullYear() + 1);
console.log(aYearFromNow);

如果在您使用的环境中不存在这些方法,那么在 JavaScript 中确实没有其他方法可以处理日期。

@a_lovelace 为什么在 vanilla JS 也可以做同样的工作时使用库?
2021-03-17 10:51:05
您可以使用momentnpm 库,或者date-fns如果您希望依赖权重更轻一些。
2021-04-04 10:51:05

此处建议的一个班轮

JP DeVries如何在 Javascript 中确定从现在开始的一年

new Date(new Date().setFullYear(new Date().getFullYear() + 1))

或者您可以从变量中的某处获取年数:

const nr_years = 3;
new Date(new Date().setFullYear(new Date().getFullYear() + nr_years))

此代码添加日期所需的年数。

var d = new Date();
// => Tue Oct 01 2017 00:00:00 GMT-0700 (PDT)

var amountOfYearsRequired = 2;
d.setFullYear(d.getFullYear() + amountOfYearsRequired);
// => Tue Oct 01 2019 00:00:00 GMT-0700 (PDT)

我喜欢将它保留在一行中,您可以为此使用自调用函数,例如:

如果您想在一行中获取+1 年时间戳

console.log(
  (d => d.setFullYear(d.getFullYear() + 1))(new Date)
)

如果你想用单行获取日期对象

console.log(
  (d => new Date(d.getFullYear() + 1, d.getMonth(), d.getDate()))(new Date)
)