Dodaj dni do JavaScript Data

Jak dodać dni do aktualnej Daty używając JavaScript. Czy JavaScript ma wbudowaną funkcję jak .Net's AddDay?

Możesz go utworzyć za pomocą:-.

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 zajmuje się automatyczną inkrementacją miesiąca, jeśli jest to konieczne. Na przykład:

8/31 + 1 dzień stanie się 9/1.

Problem z bezpośrednim użyciem setDate polega na tym, że jest to mutator, a tego typu rzeczy najlepiej unikać. ECMA uznała za stosowne traktować Date jako mutowalną klasę, a nie niezmienną strukturę.

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

Bądź ostrożny, ponieważ może to być podstępne. Kiedy ustawiasz "jutro", to działa tylko dlatego, że jego aktualna wartość pasuje do roku i miesiąca dla "dzisiaj". Jednakże, ustawienie na numer daty jak "32" normalnie nadal będzie działać dobrze, aby przenieść go do następnego miesiąca.

Komentarze (7)

Te odpowiedzi wydają mi się mylące, wolę:

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

getTime() daje nam milisekundy od 1970 roku, a 86400000 to liczba milisekund w ciągu dnia. W związku z tym ms zawiera milisekundy dla żądanej daty.

Użycie konstruktora milisekund daje pożądany obiekt daty.

Komentarze (4)