2016-06-10 5 views
0

Der Server gibt mir ein Datumsformat wie diesem May 04, 2016Moment nicht die Formatierung dieses Datum 4. Mai 2016

var month = moment('May 04, 2016', 'MM-DD-YYYY').format('M') 

month Gibt mir 4, offensichtlich sollte 5 sein mag, es gibt mir den Tag wie es scheint, und nicht der Monat.

Wie formatiere ich das Datum, das der Server mir gibt, um den Monat mit moment.js zu bestimmen?

EDIT:

Nicht wirklich sicher, warum ich downvoted bin ich tatsächlich versucht, die Antwort unten und noch

enter image description here

+0

* "Ich habe tatsächlich die Antwort unten versucht und immer noch" * Sie haben 'MM' verwendet. Die Antwort unten (wenn Sie sich auf meine beziehen) sagt 'MMM'. [Es zählt] (http://momentjs.com/docs/#/parsing/string-format/). –

+0

Dumm in meinem Namen, meine ich, aber du hast Recht. Danke Jungs, brauchte die extra Köpfe! –

Antwort

4

Wenn Sie geben moment zwei String-Argumente, the documentation says die Sekunde soll das Format der ersten sein. MM-DD-YYYY ist nicht das Format May 04, 2016. Das Format von May 04, 2016 wäre MMM DD, YYYY:

console.log(moment("May 04, 2016", "MMM DD, YYYY").format("M"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>

-1

Laut Dokumentation zu erhalten, die Monate im Bereich von 0 bis 11.

Also für Mai würde es zurückgeben 4.

Referenz: http://momentjs.com/docs/#/get-set/month/

+0

Das OP verwendet 'format', nicht' month'. –

+0

Ich verwendete Format, das gleiche wie OP, aber die Dokumentation besagt eindeutig, dass der Monat von 0 bis 11 indiziert wird. So Januar: 0, Februar: 1 .. Mai: 4 https://jsfiddle.net/ww96dtwL/1/ – SenthilKumarM

+2

Die Dokumentation sagt eindeutig, dass "Monat" 0-11 zurückgibt. Aber ['Format 'ist ziemlich eindeutig dokumentiert] (http://momentjs.com/docs/#/displaying/format/), um' 1-12' zurückzugeben: * "Monat - M - 1 2 ... 11 12" * (Weil es Formatierung für die Ausgabe ist, und nur Programmierer schreiben Daten mit dem Monat 0-basierten, nicht die meisten Menschen.) –

0

versucht mit

var Monat = Moment ('04. Mai 2016', 'MMM-DD-YYYY') Format (. 'MM')

Ändern Sie "MM" in "MMM" und .format ('M') in Format ('MM').

+1

Wenn das OP '" 5 "' als Ergebnis will, ist '.format (" MM ")' falsch . –

+0

In diesem Link sagen, dass der Monat 0-11 zurückgibt. Und .format ('M') ist korrekt. Es tut mir leid. [link] (http://momentjs.com/docs/#/get-set/month/) –

+0

Um Ihre Antwort zu korrigieren (die 'MM' vs.' M' Sache), können Sie den Link "Bearbeiten" verwenden. "MMM-DD-YYYY" ist jedoch nicht das richtige Format zum Analysieren "04. Mai 2016". Schlage nur das Löschen vor. –

Verwandte Themen