2016-06-09 5 views
0

Ich habe ein Datum im folgenden Format var timestamp = "6/9/2016 1:47:31 PM";. Ich versuche, die relative Zeit (vor 4 Stunden, vor 3 Minuten, vor 3 Tagen usw.) vom Zeitstempel im Vergleich zum aktuellen Datum zu erhalten, das von jetzt an verwendet wird.moment.js gibt ein unerwartetes Datum ausNach dem Datum ist MM/TT/JJJJ HH: mm: ss

var LastReading = moment(timestamp).fromNow(); 

aber "2010 years from now" wird zurückgegeben. Ich habe versucht, das Format

var LastReading = moment(timestamp, "MM/DD/YYYY HH:mm:ss").fromNow(); 

zu verwenden, aber ich bekomme das gleiche Ergebnis. Irgendwelche Ideen? Muss ich das Datum anders formatieren, damit die fromNow-Methode wie erwartet funktioniert?

+1

Welche Version von 'Moment'? Sieht so aus, als könnte es ziemlich alt sein. Auch bei diesem Zeitstempel sollte Ihr Format "MM/TT/JJJJ hh: mm: ss A" sein. – robertklep

+1

Wenn Sie Ihren Code mit der aktuellen Version von moment.js verwenden, erhalten Sie "2 Stunden" plus eine Verwarnungswarnung für Ihre erste, formatloses Beispiel und "14 Stunden" für die zweite Version einschließlich der Formatzeichenfolge. –

+0

Version ist^2.13.0 –

Antwort

2

Ihre Zeitstempel übereinstimmt, das Format sollte wie folgt aussehen:

MM/DD/YYYY hh:mm:ss A 

HH Mittel 24-Stunden-Zeit, aber Sie verwenden 12 Stunden Zeit, für die Sie brauchen hh zu verwenden. Außerdem entspricht AAM/PM.

+0

werde ich Probleme mit anderen Lokalisierungen mit dieser Methode haben? –

Verwandte Themen