Moment: startOf('day') gibt mir gestern

Erstellt am 3. Apr. 2016  ·  3Kommentare  ·  Quelle: moment/moment

Ausführen des folgenden Codes in Chrome-Version 49.0.2623.110 m
image
Vielleicht verwandt mit #2982?

Hilfreichster Kommentar

Da Sie die Funktion moment() verwenden, um Ihr Datum zu erstellen, geht Moment davon aus, dass Sie ein lokales Datum verarbeiten. Daher bringt Sie die .startOf() -Funktion zum Beginn Ihres lokalen Datums.
.toISOString() gibt jedoch ein UTC-Datum aus, wie durch das Z am Ende der Zeichenfolgen angezeigt.

Basierend auf Ihrem Github-Profil scheinen Sie sich in Israel zu befinden. Also, Anpassung an die Zeitzone Asien/Jerusalem und alles kodiert:

//the time now in Jerusalem
moment().format()
"2016-04-03T14:48:10+03:00"

//start of day in Jersualem
moment().startOf('day').format()
"2016-04-03T00:00:00+03:00"

//start of day as ISO string is three hours before start of day in Jerusalem
moment().startOf('day').toISOString()
"2016-04-02T21:00:00.000Z"

Sie müssen entweder vollständig in Ortszeit arbeiten und .format() verwenden, um das gewünschte Ergebnis zu erhalten, oder vollständig in UTC arbeiten.

Dieser Abschnitt der Dokumentation könnte hilfreich sein:
http://momentjs.com/guides/#/parsing/local -utc-zone/

Alle 3 Kommentare

Da Sie die Funktion moment() verwenden, um Ihr Datum zu erstellen, geht Moment davon aus, dass Sie ein lokales Datum verarbeiten. Daher bringt Sie die .startOf() -Funktion zum Beginn Ihres lokalen Datums.
.toISOString() gibt jedoch ein UTC-Datum aus, wie durch das Z am Ende der Zeichenfolgen angezeigt.

Basierend auf Ihrem Github-Profil scheinen Sie sich in Israel zu befinden. Also, Anpassung an die Zeitzone Asien/Jerusalem und alles kodiert:

//the time now in Jerusalem
moment().format()
"2016-04-03T14:48:10+03:00"

//start of day in Jersualem
moment().startOf('day').format()
"2016-04-03T00:00:00+03:00"

//start of day as ISO string is three hours before start of day in Jerusalem
moment().startOf('day').toISOString()
"2016-04-02T21:00:00.000Z"

Sie müssen entweder vollständig in Ortszeit arbeiten und .format() verwenden, um das gewünschte Ergebnis zu erhalten, oder vollständig in UTC arbeiten.

Dieser Abschnitt der Dokumentation könnte hilfreich sein:
http://momentjs.com/guides/#/parsing/local -utc-zone/

:face-palm:

Vielen Dank für die ausführliche Erklärung.

Ich glaube, ich habe das diese Woche zwischen hier und Stack Overflow tatsächlich mindestens zweimal erklärt. Sie sind nicht die einzige Person, die verwirrt ist. Ich werde die Dokumentation aktualisieren, um den UTC-Teil etwas klarer zu machen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen