6 Stimmen

MomentJS .format() erstellt das korrekte Datum -1 Tag in meiner Zeitzone.

Ich habe festgestellt, dass wenn ich momentJs benutze, um ein Datum in einem bestimmten Format in meiner Zeitzone auszugeben, ein Tag verloren geht.

Ich befinde mich in der UTC-4:30 Zeitzone.

Dies geschieht nicht in allen Zeitzonen; beachten Sie, dass dies in der UTC-5:00 Zeitzone ordnungsgemäß funktioniert.

Die folgenden sind aufeinander folgende console.log Ergebnisse:

Richtige Ausgabe:

moment([2013, 0, 24])

Moment
  _a: Array[8]
  _d: Do Jan 24 2013 00:00:00 GMT-0430 (Venezuela Standard Time)
  _isUTC: false
  _lang: false
  _proto: Object

moment([2013, 0, 24]).toDate()

Do Jan 24 2013 00:00:00 GMT-0430 (Venezuela Standard Time)

Falsche Ausgabe:

moment('01/24/2013').format('MM/DD/YYYY')

"01/23/2013"

moment([2013, 0, 24]).format('MM/DD/YYYY')

"01/23/2013"

Bitte beachten Sie, dass bei Verwendung der .format() Methode ein Tag verloren geht und anstelle des 24. der 23. ausgegeben wird.

Kann jemand dieses Verhalten erklären? Es scheint wieder einmal von der Zeitzone abhängig zu sein.

0voto

Matt Johnson-Pint Punkte 212496

Ich habe meine Zeitzone auf (UTC-4:30) Caracas eingestellt und dann den Wert von überprüft:

moment('01/24/2013').format('MM/DD/YYYY')

Es wurde korrekt 01/24/2013 zurückgegeben, daher kann ich das von Ihnen beschriebene Problem nicht reproduzieren.

Ich überprüfe mit moment.js 2.0.0. in Google Chrome 27.0.1453.116m unter Windows 8.

Möglicherweise hängt dies mit einer älteren Version von moment.js zusammen. Können Sie das bitte überprüfen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X