2016-04-16 3 views
0

Ich versuche, von react datepicker ein Datum zu formatieren, wird der Wert geht in ist 1441062000000MomentJs ungültiges Datum von picker

onChangeStartDate: function(value) { 
    this.setState({ 
     startDate: moment(value) 
    }) 
}, 

Wenn ich das Datum in dev-Tools überprüfen ich einen Moment ungültiges Datum bekommen, kann mir jemand sagen, Wie kann ich aus dem Wert ein Datum erstellen?

Ich verwende den Wert 1443135600000 mit Format, aber immer noch ungültiges Datum bekommen:

onChangeEndDate: function onChangeEndDate(value) { 
    console.log(moment(value, ConfigProvider.getKey('dateFormat'))); 

Antwort

0

Sie könnten das Format als zweites Argument zu moment passieren müssen - im Fall reagiert Datumsauswahl, wird standardmäßig zu 'x', z Unix-Zeitstempel:

this.setState({ 
    startDate: moment(value, 'x') 
}) 

Wenn Sie das zweite Argument weglassen, versucht Moment die Eingabe von looking for ISO 8601 formats zu analysieren, sondern ein Unix-Zeitstempel wird dazu führen, diesen Algorithmus zum Scheitern verurteilt. Aus diesem Grund müssen Sie das Format explizit angeben.

Der andere Weg wäre, Ihre Datumsauswahl so zu konfigurieren, dass Änderungen in einem IS 8601-kompatiblen Format ausgegeben werden, z. B. format='YYYY-MM-DD'.

+0

Natürlich ist 'x' nur notwendig, wenn die Eingabe eine Zeichenkette ist. Wenn es bereits eine JS-Nummer ist, wird es nicht benötigt. –

+0

Kann der Wert vom Datepicker falsch sein? – Bomber