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.

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

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

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.





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 ...


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

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)

0

actualizado:

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

alert(new_date)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.