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.

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

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

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.


Du hast mir viele Minuten gespart
:)




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

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)

0

Aktualisiert:

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

alert(new_date)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.