Moment: 00:00:00 sollte nicht gleich 12:00:00 sein, wenn es im h:m:s-Format geparst wird

Erstellt am 6. Jan. 2012  ·  4Kommentare  ·  Quelle: moment/moment

Dies scheinen die falschen Ergebnisse zu sein - mache ich etwas falsch?

moment('12:00:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:00:00"
moment('00:00:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:00:00" (scheint falsch zu sein)

moment('12:30:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:30:00"
moment('00:30:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:30:00" (scheint falsch zu sein)

Hilfreichster Kommentar

Sie sollten HH:mm:ss anstelle von hh:mm:ss verwenden, um eine 24-Stunden-Uhr zu erhalten.

Es scheint jedoch einen Bug zu geben. 0 Uhr ist keine gültige Stunde im 12-Stunden-Format. Ich bin mir jedoch nicht sicher, was das gewünschte Verhalten in dieser Situation ist. Es sieht nicht so aus, als ob Sie eine Fehlermeldung erhalten sollten, wenn es 0 Uhr ist.

Alle 4 Kommentare

Sie sollten HH:mm:ss anstelle von hh:mm:ss verwenden, um eine 24-Stunden-Uhr zu erhalten.

Es scheint jedoch einen Bug zu geben. 0 Uhr ist keine gültige Stunde im 12-Stunden-Format. Ich bin mir jedoch nicht sicher, was das gewünschte Verhalten in dieser Situation ist. Es sieht nicht so aus, als ob Sie eine Fehlermeldung erhalten sollten, wenn es 0 Uhr ist.

Cool, danke für die Antwort. Ich bin auf HH umgestiegen, scheint aber immer noch das Problem zu haben, zumindest mit Chrome:

moment('12:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00" (falsch?)
moment('00:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00" (korrektes Verhalten)

Standardmäßig analysieren HH und hh Stunden in 24 Stunden. Um in 12 Stunden zu parsen, müssen Sie 'am' oder 'pm' hinzufügen.

Der ursprüngliche Beitrag war richtig. Sie können dies sehen, wenn Sie a zur Formatierungszeichenfolge hinzufügen.

moment('12:00:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:00:00 pm"
moment('00:00:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:00:00 am"

moment('12:30:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:30:00 pm"
moment('00:30:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:30:00 am"

Ich glaube, das folgende Problem ist ein bekanntes Problem, das behoben wurde. Es wurde durch den Commit in #74 verursacht und in #92 behoben. Ich füge jedoch Unit-Tests hinzu. Ich werde auch die Dokumente klären.

moment('12:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00"

Wenn Sie 1.2.0 verwenden, sollten Sie auf 1.3.0 aktualisieren, da dies bei der Einführung des Bugfixes war.

Cool, hört sich gut an. Vielen Dank!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen