stringa di date momentJS aggiungere 5 giorni


154

ho una stringa della data di inizio "20.03.2014" e voglio aggiungere 5 giorni a questo con moment.js ma non visualizzo la nuova data "25.03.2014" nella finestra di avviso.

qui il mio codice javascript:

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

alert(new_date);

qui il mio jsfiddle: http://jsfiddle.net/jbgUt/1/

Come posso risolvere questo ?

Mi piace questo formato di stringa "25.03.2014"

Spero che qualcuno mi possa aiutare.

Risposte:


326

AGGIORNATO: 19 gennaio 2016

A partire dal momento 2.8.4 - utilizzare .add(5, 'd')(o .add(5, 'days')) invece di.add('d', 5)

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

Grazie @Bala per l'informazione.

AGGIORNATO: 21 marzo 2014

Questo è quello che dovresti fare per ottenere quel formato.

Ecco un violino aggiornato

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

ORIGINALE: 20 marzo 2014

Non stai dicendo come / quale unità aggiungere. Uso -

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

voglio vedere questo formato "25.03.2014" nella finestra di avviso come posso implementarlo?
Dave,

2
A partire dal momento-2.8.4, posso vedere un messaggio obsoleto con add ('giorni', 5). Utilizzare invece (5, "giorni").
Bala,

1
La sintassi corretta: moment (). Add (5, 'days'). Format ("D / M / YYYY") Puoi guardare qui: momentjs.com/docs/#/manipulating/add
Costas Bakoulias

16

La funzione add () restituisce la vecchia data, ma cambia la data originale :)

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

7
Sì, è strano. Quando effettui moment(startdate).add(5, 'days')il check- in nella console, ottieni Moment {_isAMomentObject: true, _i: "[the original date]",}ed ero sicuro che il addmetodo non funzionasse. Dopo aver trascorso alcuni minuti, mi sono reso conto che il metodo stava funzionando, perché se apri l'oggetto ottieni Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date]... La data è effettivamente cambiata (otterrai il risultato corretto moment(startdate).add(5, 'days').format('YYYYMMDD')), ma è confuso che sembra che la data non abbia ' è cambiato. : - |
Gilad Barner,

14
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))

deve formattare e convertire nuovamente in momento.


Mi hai risparmiato un sacco di minuti
:)




2

Puoi ridurre ciò che hanno detto in poche righe di codice:

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

2

Per ottenere un vero esempio funzionante che restituisce ciò che ci si aspetterebbe:

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)

0

aggiornamento:

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

alert(new_date)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.