Kaip pridėti dienų prie dabartinės Data
naudojant "JavaScript". Ar "JavaScript" turi tokią funkciją kaip "Net" AddDay
?
Jį galite sukurti naudodami:-
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));
Jei reikia, tai pasirūpina automatiniu mėnesio padidinimu. Pavyzdžiui:
8/31 + 1 diena taps 9/1.
Tiesiogiai naudojant setDate
problema yra ta, kad tai yra mutatorius, o tokių dalykų geriau vengti. ECMA nusprendė, kad Date
turi būti laikoma ne nekintama struktūra, o keičiama klase.
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);
Būkite atsargūs, nes tai gali būti sudėtinga. Nustatant "rytoj", tai veikia tik todėl, kad dabartinė reikšmė sutampa su "šiandien" metais ir mėnesiu. Tačiau nustatymas į tokį datos skaičių, kaip "32", paprastai vis tiek veiks puikiai, kad būtų perkeltas į kitą mėnesį.
Šie atsakymai man atrodo painūs, aš renkuosi:
var ms = new Date().getTime() + 86400000;
var tomorrow = new Date(ms);
getTime() rodo milisekundes nuo 1970 m., o 86400000 yra milisekundžių skaičius per dieną. Vadinasi, ms yra norimos datos milisekundės.
Naudojant milisekundžių konstruktorių, gaunamas norimas datos objektas.