cadena de fecha momentJS agregar 5 días

154

Tengo una cadena de fecha de inicio "20.03.2014" y quiero agregar 5 días a esto con moment.js pero no obtengo la nueva fecha "25.03.2014" en la ventana de alerta.

aquí mi código javascript:

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

alert(new_date);

Aquí mi jsfiddle: http://jsfiddle.net/jbgUt/1/

Como puedo resolver esto ?

Me gusta este formato de cadena "25.03.2014"

Espero que alguien pueda ayudarme.

Dave
fuente

Respuestas:

326

ACTUALIZADO: 19 de enero de 2016

A partir del momento 2.8.4 - use .add(5, 'd')(o .add(5, 'days')) en lugar de.add('d', 5)

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

Gracias @Bala por la información.

ACTUALIZADO: 21 de marzo de 2014

Esto es lo que tendrías que hacer para obtener ese formato.

Aquí hay un violín actualizado

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

ORIGINAL: 20 de marzo de 2014

No le está diciendo cómo / qué unidad agregar. Utilizar -

 var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);
VtoCorleone
fuente
quiero ver este formato "25.03.2014" en la ventana de alerta, ¿cómo puedo implementar esto?
Dave
2
A partir del momento-2.8.4, puedo ver un mensaje en desuso con add ('días', 5). Use add (5, 'días') en su lugar.
Bala
La sintaxis correcta: moment (). Add (5, 'days'). Format ("D / M / AAAA") Puede consultar un momento aquí: momentjs.com/docs/#/manipulating/add
Costas Bakoulias
16

La función add () devuelve la fecha anterior, pero cambia la fecha original :)

startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
new_date.add(5, 'days');
alert(new_date);
Leonard Pauli
fuente
55
Sí, eso es raro Al registrar moment(startdate).add(5, 'days')la consola que obtienes Moment {_isAMomentObject: true, _i: "[the original date]",}, y estaba seguro de que el addmétodo no estaba funcionando. Después de pasar unos minutos, me di cuenta de que el método estaba funcionando, porque si abres el objeto que obtienes Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date]... La fecha realmente ha cambiado (obtendrás el resultado correcto con moment(startdate).add(5, 'days').format('YYYYMMDD')), pero es confuso que parece que la fecha no ha cambiado t cambiado. : - |
Gilad Barner
14
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))

tiene que formatear y luego convertir al momento nuevamente.

Ben
fuente
Me
ahorraste
12

Puede agregar días en diferentes formatos:

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

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

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

Obtenga más información al respecto en los documentos de Moment.js: https://momentjs.com/docs/#/manipulating/add/

Isidro Martínez
fuente
6
var end_date = moment(start_date).clone().add(5, 'days');
Sorin Trimbitas
fuente
Es lo clone()que realmente ayuda aquí
ChrisW
3
  1. agregue https://momentjs.com/downloads/moment-with-locales.js a su página 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 luego
  3. var dueDate = moment().add(15,'days').format('DD-MM-YYYY')// to add 15 days to current date..

los puntos 2 y 3 están usando en su código jquery ...

Kamala kanta das
fuente
2

Puede reducir lo que dijeron en unas pocas líneas de código:

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
fuente
2

Para obtener un ejemplo de trabajo real que devuelva lo que uno esperaría:

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
fuente
0

actualizado:

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

alert(new_date)
nishith
fuente