Dodajanje dni v datum JavaScript

Kako dodati dneve trenutnemu datumu Date z uporabo JavaScripta. Ali ima JavaScript vgrajeno funkcijo, podobno funkciji AddDay v .Netu?

Ustvarite ga lahko z:-

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

To poskrbi za samodejno povečanje meseca, če je to potrebno. Na primer:

8/31 + 1 dan bo postal 9/1.

Težava pri neposredni uporabi setDate je v tem, da je to mutator, zato se je takšnim stvarem bolje izogibati. ECMA se je odločila, da Date obravnava kot spremenljiv razred in ne kot nespremenljivo strukturo.

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

Bodite previdni, saj je to lahko zapleteno. Ko nastavite "jutri", deluje le, ker se trenutna vrednost ujema z letom in mesecem za "danes". Vendar pa nastavitev na datumsko številko, kot je "32", običajno še vedno deluje dobro, da se premakne v naslednji mesec.

Komentarji (7)

Ti odgovori se mi zdijo zmedeni, raje:

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

getTime() nam daje milisekunde od leta 1970, 86400000 pa je število milisekund v dnevu. Zato ms vsebuje milisekunde za želeni datum.

Z uporabo konstruktorja milisekunde dobimo želeni objekt datuma.

Komentarji (4)