2016-05-14 5 views
1

Die einzigen Daten, Zeit, die ich habe, ist 7:00pm ET - ich dies in einem Moment Date-Objekt für den aktuellen Tag zu formatieren müssen, so kann ich dann ausgegeben andere Formate .format(...)Wie erhalte ich ein Moment.js-Date-Objekt mit nichts als einer Zeit?

mit diesem habe ich versucht:

moment.tz(new Date('7:00pm ET'), 'America/New_York'); 

Ich habe auch versucht:

moment.tz('7:00pm', 'America/New_York'); 

Aber das wirft einen Fehler über keine richtige Datumszeichenkette.

Antwort

3

Sie müssen das Format des Eingangs string angeben.

var m = moment.tz('7:00pm', 'h:mma', 'America/New_York'); 

Allerdings, wenn Sie nur die Formatierung zu tun, dann haben Sie wahrscheinlich brauchen nicht über die Zeitzone zu kümmern.

var m = moment('7:00pm', 'h:mma'); 

Sie können dann von dort keine Formatierung von m.format("...") Aufruf ... mit dem, was Ausgabe Format ersetzen Sie wollen.

Beachten Sie auch, dass nur, weil ET Teil der Eingabezeichenfolge ist, nicht bedeutet, dass es als US Eastern Time erkannt werden kann. Im Allgemeinen sind Zeitzonenabkürzungen einfach zu zweideutig, um als Eingabe verwendet zu werden.

+1

Matt ist richtig, aber beachten Sie, dass sich dies wahrscheinlich nicht wie erwartet verhält, wenn das aktuelle Datum des Zielrechners sich vom Datum in der Zielzeitzone unterscheidet. Aktuell 2016-05-15 in der 'Asia/Magdan' Zeitzone, aber '' moment.tz ('7:00 pm', 'hh: mma', 'Asien/Magadan'). Format() '' ergibt "2016-05-14T19: 00: 00 + 11: 00". Vielleicht nicht was du willst. –

+0

Maggie hat einen guten Punkt. Es ist nicht überall auf der Welt das gleiche Datum. –

+0

Ich glaube, dieses Verhalten könnte möglicherweise als Bug bezeichnet werden. Die Zeitzone ist bekannt. Warum sollten wir das Datum nicht auf das Datum in der bekannten Zeitzone setzen? Nicht sicher, wie man mit gutem alten '' updateOffset'' ändert, wie es ist. –

-1

Der einfachste Weg wäre, einen Moment auf die aktuelle Zeit mit var now = moment(); einzurichten und dann diese Momente mit now.set('hour', 19) einzustellen.

+0

Außer Zeit ist nicht im 24-Stunden-Format. – chovy

Verwandte Themen