Fügen Sie dem heutigen Datum das Jahr hinzu


77

Ich versuche, dem heutigen Datum ein Jahr hinzuzufügen. Ich arbeite in einem System, in dem Sie kein standardJavaScript verwenden können.

Zum Beispiel muss ich Folgendes verwenden, um das heutige Datum zu erhalten:

javascript:now();

Ich habe versucht:

javascript:now(+1);

Ich habe das noch nie gesehen, muss aber ein Jahr zum heutigen Datum hinzufügen ...

Hat jemand schon einmal gesehen, wie man das aktuelle Datum auf diese Weise erhält? Und wenn ja, wie könnte ich ein Jahr hinzufügen?



Dies ist kein Duplikat. Wie ich oben sagte, nicht in der Lage, Standard-Javascript-Methodik zu verwenden
Code

3
Es könnte hilfreich sein, wenn Sie uns einen Einblick geben, in welchem ​​System dieser Code ausgeführt wird.
Jon Koops

Antworten:


103

Mit dem folgenden Code können Sie ein neues Datumsobjekt mit dem heutigen Datum erstellen:

var d = new Date();
    console.log(d);
// => So 11.10.2015 14:46:51 GMT-0700 (PDT)

Wenn Sie ein Datum zu einer bestimmten Zeit erstellen möchten, können Sie die neuen Datumskonstruktorargumente übergeben

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

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

Wenn Sie das heutige Datum nehmen und ein Jahr hinzufügen möchten, können Sie zuerst ein Datumsobjekt erstellen, auf die relevanten Eigenschaften zugreifen und dann ein neues Datumsobjekt erstellen

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)

Weitere Informationen zu den Methoden für das Datumsobjekt in MDN finden Sie hier

Datumsobjekt


67
Es müssen keine zwei Datumsobjekte erstellt werden. d.setFullYear(d.getFullYear() + 1)erledigt den Job in viel weniger Code.
RobG

2
Sie verlieren aber auch das ursprüngliche Datum
Jonah Williams

Dann: var d = new Date(+originalDate)kopiert das ursprüngliche Datum.
RobG

9
Dies funktioniert nicht mit Schaltjahr. Wenn Sie beispielsweise nach dem Hinzufügen eines Jahres den 29.02.2016 eingeben, wird der 29.02.2017 zurückgegeben, was nicht korrekt ist.
Renascent

6
@ANP nein, es wird der 01.03.2017 zurückgegeben, was wahrscheinlich immer noch nicht erforderlich ist, aber das nicht vorhandene Datum 29.02.2017 wird definitiv nicht zurückgegeben. Denken Sie daran, dass in JavaScript der 1. Februar und nicht der 2. Februar ist.
Roman Starkov

78

Verwenden Sie die Date.prototype.setFullYear- Methode, um das Jahr so ​​einzustellen, wie Sie es möchten.

Zum Beispiel:

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

Es gibt wirklich keine andere Möglichkeit, mit Datumsangaben in JavaScript zu arbeiten, wenn diese Methoden in der Umgebung, mit der Sie arbeiten, nicht vorhanden sind.


17

Ein Liner wie hier vorgeschlagen

Wie man in einem Jahr in Javascript von JP DeVries bestimmt

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

Oder Sie können die Anzahl der Jahre von irgendwo in einer Variablen abrufen:

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

5

Dieser Code fügt die Anzahl der Jahre hinzu, die für ein Datum erforderlich sind.

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

Ich möchte es in einer einzigen Zeile halten, Sie können eine selbstaufrufende Funktion dafür verwenden, z.

Wenn Sie den Zeitstempel von +1 Jahr in einer einzigen Zeile erhalten möchten

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

Wenn Sie möchten , erhalten Datum Objekt mit einzelner Zeile

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

In Angular berechnen Sie auf diese Weise das Datum

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

Wenn Sie neben dem heutigen Datum auch Jahre zu einem bestimmten Datum hinzufügen möchten, verwenden Sie entweder Jahre, Monate oder Tage. Sie können Folgendes tun

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

Funktion

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

// Dieser Code behandelt auch die Schaltjahraddition.

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';
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.