momentJS data string adaugă 5 zile (Programare, Javascript, Momentjs, Adăugați, Zile)

Dave a intrebat.

am un șir de date de început „20.03.2014” și vreau să adaug 5 zile la acesta cu moment.js, dar nu primesc noua dată „25.03.2014” în fereastra de alertă.

aici codul meu javascript:

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

alert(new_date);

aici jsfiddle meu: http://jsfiddle.net/jbgUt/1/

Cum pot rezolva acest lucru?

Îmi place acest format de șir de caractere „25.03.2014”

Sper că cineva mă poate ajuta.

9 răspunsuri
VtoCorleone

ACTUALIZAT: 19 ianuarie 2016

Începând cu momentul 2.8.4 – utilizați .add(5, 'd') (sau .add(5, 'days')) în loc de .add('d', 5)

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

Mulțumim @Bala pentru informații.

ACTUALIZAT: 21 martie 2014

Iată ce ar trebui să faci pentru a obține acest format.

Iată o violină actualizată

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 martie 2014

Nu-i spui cum/ce unitate să adauge. Folosește.

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

Comentarii

  • vreau să văd acest format „25.03.2014” în fereastra de alertă cum pot implementa acest lucru ? –  > Por Dave.
  • Începând cu moment-2.8.4, pot vedea mesajul depreciat cu add(‘days’,5). Utilizați în schimb add(5,’days’). –  > Por Bala.
  • Sintaxa corectă : moment().add(5, ‘days’).format(„D/M/AAAA”) Puteți să vă uitați un timp aici : momentjs.com/docs/#/manipulating/add –  > Por Costas Bakoulias.
Ben
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))

trebuie să formatați și apoi să convertiți din nou în moment.

Comentarii

  • Mi-ați salvat multe minute : ) –  > Por ivahidmontazer.
Leonard Pauli

Funcția add() returnează data veche, dar schimbă data originală 🙂

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

Comentarii

  • Da, asta e ciudat. Când se verifică moment(startdate).add(5, 'days') în consolă se obține Moment {_isAMomentObject: true, _i: "[the original date]",}, iar eu eram sigur că add metoda nu funcționa. După ce am petrecut câteva minute, mi-am dat seama că metoda FUNCȚIONEAZĂ, pentru că dacă deschizi obiectul primești Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date]… Data s-a schimbat de fapt (veți obține rezultatul corect cu moment(startdate).add(5, 'days').format('YYYYMMDD')), dar este confuz faptul că pare că data nu s-a schimbat. :-|| – –  > Por Gilad Barner.
Isidro Martínez

Puteți adăuga zile în diferite formate:

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

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

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

Vedeți mai multe despre asta în documentația Moment.js: https://momentjs.com/docs/#/manipulating/add/

Sorin Trimbitas
var end_date = moment(start_date).clone().add(5, 'days');

Comentarii

  • Este clone() care ajută cu adevărat aici –  > Por ChrisW.
Pytth

Pentru a obține un exemplu real de lucru care să returneze ceea ce se așteaptă:

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)

Kamala kanta das
  1. adăugați https://momentjs.com/downloads/moment-with-locales.js la pagina dvs. 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 dateapoi
  3. var dueDate = moment().add(15,'days').format('DD-MM-YYYY')// to add 15 days to current date..

punctul 2 și 3 se utilizează în codul jquery…

Marco Barcellos

Puteți reduce ceea ce au spus în câteva linii de cod:

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

nishith

actualizat:

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

alert(new_date)