将年份添加到今天的日期


77

我想将今天增加一年。我在不允许您使用的系统中工作standardJavaScript。

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

javascript:now();

我努力了:

javascript:now(+1);

我以前从未见过,但今天需要增加一年的时间...

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


2
语言

这不是重复项。就像我在上面说的那样,无法使用标准的javascript方法
代码

3
如果你给了我们一些洞察系统这个代码在执行时可能会有所帮助。
乔恩Koops的

Answers:


103

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

var d = new Date();
    console.log(d);
// => Sun Oct 11 2015 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上阅读有关日期对象的更多方法

日期对象


67
无需创建两个日期对象。d.setFullYear(d.getFullYear() + 1)将用更少的代码完成这项工作。
RobG 2015年

2
但您也会丢失原始日期
乔纳·威廉姆斯

然后:var d = new Date(+originalDate)将复制原始日期。
RobG 2015年

9
这不适用于leap年日期。例如,如果您在添加一年后输入29/02/2016,则将返回29/02/2017,这是不正确的。
重生

6
@ANP否,它将返回01/03/2017,这可能仍然不是必需的,但绝对不会返回不存在的日期29/02/2017。请记住,在JavaScript中,二月是1,2,不
罗马Starkov

78

使用Date.prototype.setFullYear方法将年份设置为所需的年份。

例如:

var aYearFromNow = new Date();
aYearFromNow.setFullYear(aYearFromNow.getFullYear() + 1);

如果您正在使用的环境中没有这些方法,那么实际上没有其他方法可以在JavaScript中使用日期。



5

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

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)

2

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

如果您想单行获得+1年的时间戳

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

如果要单行获取Date对象

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


1
    var d = new Date();
    var year = d.getFullYear();
    var month = d.getMonth();
    var day = d.getDate();

    var fulldate = new Date(year + 1, month, day);

    var toDate = fulldate.toISOString().slice(0, 10);

    $("#txtToDate").val(toDate);

    output : 2020-01-02

0

在Angular中,这是您计算日期的方式

today = new Date();
year = this.today.getFullYear();
month = this.today.getMonth();
day = this.today.getDate();
//To go 18 years back
yearsBack18= new Date(this.year - 18, this.month, this.day);

//To go to same day next year
nextYear= new Date(this.year + 1, this.month, this.day);

-1

如果您想在今天的日期之外使用年,月或天来将年添加到特定日期之外。您可以执行以下操作

var christmas2000 = new Date(2000, 12, 25); 
christmas2000.setFullYear(christmas2000.getFullYear() + 5); // using year: next 5 years
christmas2000.setFullYear(christmas2000.getMonth() + 24); // using months: next 24 months
christmas2000.setFullYear(christmas2000.getDay() + 365); // using days: next 365 months

-1

功能

var date = new Date();

var year = date.getFullYear();

var month = date.getMonth();

month = month + 1;

if (month < 10) {
    month = "0" + month;
} 

var day = date.getDate();

if (day < 10) {
    day = "0" + day;
} 

year = year + 1;

var FullDate =  year + '/' + month + '/' + day; 

-2

//这段代码还将处理addition年的添加。

function updateExpiryDate(controlID, value) {
    if ( $("#ICMEffectiveDate").val() != '' &&
        $("#ICMTermYears").val() != '') {

        var effectiveDate = $("#ICMEffectiveDate").val();
        var date = new Date(effectiveDate);
        var termYears = $("#ICMTermYears").val();

        date = new Date(date.setYear(date.getFullYear() + parseInt(termYears)));
        var expiryDate = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();
        $('#ICMExpiryDate').val(expiryDate);
    }
}

-2
var yearsToAdd = 5;
var current = new Date().toISOString().split('T')[0];
var addedYears = Number(this.minDate.split('-')[0]) + yearsToAdd + '-12-31';
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.