momentJS ciąg daty dodaje 5 dni

154

Mam ciąg daty rozpoczęcia „20.03.2014” i chcę dodać 5 dni do tego z momentem.js, ale nie widzę nowej daty „25.03.2014” w oknie alertu.

tutaj mój kod javascript:

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add("DD-MM-YYYY", 5);

alert(new_date);

tutaj mój jsfiddle: http://jsfiddle.net/jbgUt/1/

Jak mogę to rozwiązać?

Podoba mi się ten format ciągu „25.03.2014”

Mam nadzieję, że ktoś może mi pomóc.

Dave
źródło

Odpowiedzi:

326

AKTUALIZACJA: 19 stycznia 2016 r

Od momentu 2.8.4 - użyj .add(5, 'd')(lub .add(5, 'days')) zamiast.add('d', 5)

var new_date = moment(startdate, "DD-MM-YYYY").add(5, 'days');

Dzięki @Bala za informacje.

AKTUALIZACJA: 21 marca 2014 r

Oto, co musisz zrobić, aby uzyskać ten format.

Oto zaktualizowane skrzypce

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);

var day = new_date.format('DD');
var month = new_date.format('MM');
var year = new_date.format('YYYY');

alert(day + '.' + month + '.' + year);

ORYGINAŁ: 20 marca 2014

Nie mówisz mu, jak / jaką jednostkę dodać. Posługiwać się -

 var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);
VtoCorleone
źródło
chcę zobaczyć ten format „25.03.2014” w oknie alertu. Jak mogę to zaimplementować?
Dave
2
W momencie 2.8.4 widzę przestarzały komunikat z add („days”, 5). Zamiast tego użyj add (5, „days”).
Bala
Prawidłowa składnia: moment (). Add (5, 'dni'). Format ("D / M / RRRR") Możesz zajrzeć tutaj: momentjs.com/docs/#/manipulating/add
Costas Bakoulias
16

Funkcja add () zwraca starą datę, ale zmienia pierwotną datę :)

startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
new_date.add(5, 'days');
alert(new_date);
Leonard Pauli
źródło
5
Tak, to dziwne. Podczas sprawdzania moment(startdate).add(5, 'days')w konsoli otrzymałem Moment {_isAMomentObject: true, _i: "[the original date]",}i byłem pewien, że addmetoda nie działa. Po kilku minutach zdałem sobie sprawę, że metoda DZIAŁA, ponieważ jeśli otworzysz otrzymany obiekt Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date]... Data faktycznie się zmieniła (otrzymasz poprawny wynik z moment(startdate).add(5, 'days').format('YYYYMMDD')), ale jest mylące, że wygląda na to, że data się nie zmieniła t zmienił się. : - |
Gilad Barner
14
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))

musi sformatować, a następnie ponownie przekonwertować na moment.

Ben
źródło
Zaoszczędziłeś mi mnóstwo minut
:)
12

Możesz dodawać dni w różnych formatach:

// Normal adding
moment().add(7, 'days');

// Short Hand
moment().add(7, 'd');

// Literal Object    
moment().add({days:7, months:1});

Zobacz więcej na ten temat w dokumentach Moment.js: https://momentjs.com/docs/#/manipulating/add/

Isidro Martínez
źródło
6
var end_date = moment(start_date).clone().add(5, 'days');
Sorin Trimbitas
źródło
To clone()naprawdę pomaga
ChrisW,
3
  1. dodaj https://momentjs.com/downloads/moment-with-locales.js do swojej strony html
  2. var todayDate = moment().format('DD-MM-YYYY');//to get today date 06/03/2018 if you want to add extra day to your current date następnie
  3. var dueDate = moment().add(15,'days').format('DD-MM-YYYY')// to add 15 days to current date..

punkty 2 i 3 używają w kodzie jQuery ...

Kamala kanta das
źródło
2

Możesz ograniczyć to, co powiedzieli, w kilku wierszach kodu:

var nowPlusOneDay = moment().add('days', 1);
var nowPlusOneDayStr = nowPlusOneDay.format('YYYY-MM-DD');

alert('nowPlusOneDay Without Format(Unix Date):'+nowPlusOneDay);
alert('nowPlusOneDay Formatted(String):'+nowPlusOneDayStr);
Marco Barcellos
źródło
2

Aby uzyskać rzeczywisty działający przykład, który zwraca to, czego można się spodziewać:

var startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
var thing = new_date.add(5, 'days').format('DD/MM/YYYY');
window.console.log(thing)
Pytth
źródło
0

zaktualizowane:

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add(5,'days');

alert(new_date)
nishith
źródło