Legg til dager i JavaScript Dato

Hvordan legge til dager til gjeldende Date ved hjelp av JavaScript. Har JavaScript en innebygd funksjon som .Net's AddDay?

Du kan opprette en med:-

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

Dette sørger for å øke måneden automatisk om nødvendig. For eksempel

8/31 + 1 dag blir 9/1.

Problemet med å bruke setDate direkte er at det er en mutator, og den slags bør helst unngås. ECMA fant det hensiktsmessig å behandle Date som en foranderlig klasse i stedet for en uforanderlig struktur.

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

Vær forsiktig, for dette kan være vanskelig. Når du angir "i morgen", fungerer det bare fordi den nåværende verdien samsvarer med året og måneden for "i dag". Imidlertid vil innstilling til et datonummer som "32" normalt fortsatt fungere helt fint for å flytte det til neste måned.

Kommentarer (7)

Disse svarene virker forvirrende for meg, jeg foretrekker:

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

getTime() gir oss millisekunder siden 1970, og 86400000 er antall millisekunder på en dag. Derfor inneholder ms millisekunder for ønsket dato.

Bruk av millisekundkonstruktøren gir det ønskede datoobjektet.

Kommentarer (4)