Potřebuji zvýšit hodnotu data o jeden den v JavaScriptu.
Například mám hodnotu data 2010-09-11 a potřebuji uložit datum dalšího dne do proměnné JavaScriptu.
Jak mohu zvýšit datum o den?
Odpověď
Tři možnosti pro vás:
1. Pouze pomocí JavaScriptu Date
objekt (žádné knihovny):
Moje předchozí odpověď na číslo 1 byla chybná (přidala 24 hodin, protože nezohlednila přechody na letní čas a z něj; Clever Human poukázal na to, že selže 7. listopadu 2010 ve východním časovém pásmu). Místo toho je Jigarova odpověď správným způsobem, jak to udělat bez knihovny:
// To do it in local time var tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); // To do it in UTC var tomorrow = new Date(); tomorrow.setUTCDate(tomorrow.getUTCDate() + 1);
Funguje to i pro poslední den měsíce (nebo roku), protože objekt datum v JavaScriptu je chytrý, pokud jde o převrácení:
// (local time) var lastDayOf2015 = new Date(2015, 11, 31); console.log("Last day of 2015: " + lastDayOf2015.toISOString()); var nextDay = new Date(+lastDayOf2015); var dateValue = nextDay.getDate() + 1; console.log("Setting the 'date' part to " + dateValue); nextDay.setDate(dateValue); console.log("Resulting date: " + nextDay.toISOString());
2. Použití MomentJS:
var today = moment(); var tomorrow = moment(today).add(1, 'days');
(Pozor, add
modifikuje instanci, na které ji voláte, místo aby vrátil novou instanci, takže today.add(1, 'days')
by upravil today
. Proto začínáme klonováním na var tomorrow = ...
.)
3. Používá DateJS, ale dlouho nebyl aktualizován:
var today = new Date(); // Or Date.today() var tomorrow = today.add(1).day();