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.
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.
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.