momentJS Datumszeichenfolge 5 Tage hinzufügen

152

Ich habe eine Startdatum-Zeichenfolge "20.03.2014" und möchte 5 Tage mit moment.js hinzufügen, aber ich erhalte nicht das neue Datum "25.03.2014" im Warnfenster.

hier mein Javascript Code:

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

alert(new_date);

hier meine jsfiddle: http://jsfiddle.net/jbgUt/1/

Wie kann ich das lösen?

Ich mag dieses String-Format "25.03.2014"

Hoffe jemand kann mir helfen.

Dave
quelle

Antworten:

323

AKTUALISIERT: 19. Januar 2016

Ab Moment 2.8.4 - benutze .add(5, 'd')(oder .add(5, 'days')) anstelle von.add('d', 5)

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

Danke @Bala für die Information.

AKTUALISIERT: 21. März 2014

Dies ist, was Sie tun müssten, um dieses Format zu erhalten.

Hier ist eine aktualisierte Geige

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. März 2014

Sie sagen nicht, wie / welche Einheit hinzugefügt werden soll. Verwenden -

 var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);
VtoCorleone
quelle
Ich möchte dieses Format "25.03.2014" im Warnfenster sehen. Wie kann ich das implementieren?
Dave
2
Ab Moment-2.8.4 kann ich eine veraltete Nachricht mit add ('Tage', 5) sehen. Verwenden Sie stattdessen add (5, 'Tage').
Bala
Die richtige Syntax: moment (). Add (5, 'Tage'). Format ("D / M / JJJJ") Hier können Sie eine Weile nachsehen
Costas Bakoulias
16

Die Funktion add () gibt das alte Datum zurück, ändert aber das ursprüngliche Datum :)

startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
new_date.add(5, 'days');
alert(new_date);
Leonard Pauli
quelle
5
Ja das ist komisch. Beim Einchecken moment(startdate).add(5, 'days')in die Konsole erhalten Sie Moment {_isAMomentObject: true, _i: "[the original date]",}, und ich war sicher, dass die addMethode nicht funktioniert. Nachdem ich ein paar Minuten verbracht hatte, stellte ich fest, dass die Methode funktionierte, denn wenn Sie das Objekt öffnen, erhalten Sie Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date]... Das Datum hat sich tatsächlich geändert (Sie erhalten das richtige Ergebnis mit moment(startdate).add(5, 'days').format('YYYYMMDD')), aber es ist verwirrend, dass das Datum anscheinend nicht stimmt. ' t geändert. : - |
Gilad Barner
14
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))

muss formatieren und dann wieder in moment konvertieren.

Ben
quelle
Du hast mir viele Minuten gespart
:)
12

Sie können Tage in verschiedenen Formaten hinzufügen:

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

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

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

Weitere Informationen finden Sie in den Moment.js-Dokumenten: https://momentjs.com/docs/#/manipulating/add/

Isidro Martínez
quelle
6
var end_date = moment(start_date).clone().add(5, 'days');
Sorin Trimbitas
quelle
Es ist das clone(), was hier wirklich hilft
ChrisW
3
  1. Fügen Sie Ihrer HTML-Seite https://momentjs.com/downloads/moment-with-locales.js hinzu
  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 dann
  3. var dueDate = moment().add(15,'days').format('DD-MM-YYYY')// to add 15 days to current date..

Punkt 2 und 3 werden in Ihrem Abfragecode verwendet ...

Kamala kanta das
quelle
2

Sie können das, was sie sagten, in ein paar Codezeilen reduzieren:

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

Um ein aktuelles Arbeitsbeispiel in Gang zu bringen, das das zurückgibt, was man erwarten würde:

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

Aktualisiert:

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

alert(new_date)
Nishith
quelle