Dagen toevoegen aan JavaScript Datum

Hoe voeg ik dagen toe aan de huidige Datum met behulp van JavaScript. Heeft JavaScript een ingebouwde functie zoals .Net's AddDay?

Je kunt er een maken met:-

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));

Dit zorgt voor het automatisch ophogen van de maand indien nodig. Bijvoorbeeld:

8/31 + 1 dag wordt 9/1.

Het probleem met het direct gebruiken van setDate is dat het een mutator is en dat soort dingen kun je beter vermijden. ECMA vond het nodig om Datum te behandelen als een muteerbare klasse in plaats van een onveranderlijke structuur.

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

Wees voorzichtig, want dit kan lastig zijn. Als je "tomorrow" instelt, werkt het alleen omdat de huidige waarde overeenkomt met het jaar en de maand voor "today". Echter, het instellen op een datumgetal als "32" zal normaal gesproken nog steeds prima werken om het naar de volgende maand te verplaatsen.

Commentaren (7)

Deze antwoorden lijken me verwarrend, ik heb liever:

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

getTime() geeft ons milliseconden sinds 1970, en 86400000 is het aantal milliseconden in een dag. Vandaar dat ms milliseconden bevat voor de gewenste datum.

Gebruik van de milliseconde constructor geeft het gewenste datum object.

Commentaren (4)