Zvýšení data v JavaScriptu

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