Tage zu JavaScript Datum hinzufügen

Wie kann man mit JavaScript Tage zum aktuellen "Datum" hinzufügen? Hat JavaScript eine eingebaute Funktion wie .Net's AddDay?

Sie können einen erstellen mit:-

Date.prototype.addDays = function(days) {
    var date = new Date(this.valueOf());
    date.setDate(date.getDate() + days);
    return date;
}

var date = new Date();

alert(date.addDays(5));

Dies sorgt dafür, dass der Monat automatisch hochgezählt wird, falls erforderlich. Zum Beispiel:

8/31 + 1 Tag wird zu 9/1.

Das Problem bei der direkten Verwendung von setDate ist, dass es sich um einen Mutator handelt, und so etwas sollte man besser vermeiden. ECMA hielt es für angebracht, Date als veränderbare Klasse und nicht als unveränderliche Struktur zu behandeln.

Kommentare (16)
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);

Seien Sie vorsichtig, denn das kann knifflig sein. Wenn Sie "morgen" einstellen, funktioniert das nur, weil der aktuelle Wert mit dem Jahr und dem Monat für "heute" übereinstimmt. Wenn Sie jedoch eine Datumszahl wie "32" eingeben, funktioniert die Verschiebung auf den nächsten Monat problemlos.

Kommentare (7)

Diese Antworten scheinen mir verwirrend zu sein, ich ziehe sie vor:

var ms = new Date().getTime() + 86400000;
var tomorrow = new Date(ms);

getTime() liefert uns Millisekunden seit 1970, und 86400000 ist die Anzahl der Millisekunden eines Tages. Folglich enthält ms Millisekunden für das gewünschte Datum.

Die Verwendung des Millisekunden-Konstruktors liefert das gewünschte Datumsobjekt.

Kommentare (4)