Wie erstellen Sie Zeit in einer bestimmten Zeitzone mit moment.js
Habe ich dieses backend sendet mir eine pre-formatierte Zeit in einem festgelegten Zeit-zone, aber ohne jegliche information für die betreffende Zeitzone. Die Saiten sind wie: "2013-08-26 16:55:00".
Kann ich eine neue erstellen moment.js Instanz mit diesem string:
var time = moment("2013-08-26 16:55:00") //this creates time in my tz
aber das wird nur eine Instanz in meiner eigenen Zeitzone.
Moment.js ein plugin, das erstellen von Instanzen des Objekts in bestimmten Zeitzonen und es funktioniert Super, aber ich kann nicht sagen, was mal will ich das Objekt zu zeigen.
Wenn ich in New York und ich Tue das:
var time = moment("2013-08-26 16:55:00").tz("America/Los_Angeles");
die daraus resultierende Zeit von 13:55 statt 16:55, aber in LA.
Was ich will, ist eine Instanz zu schaffen, die behaupten, 16:55, aber in der LA Zeit.
Den Grund ich Frage ist, weil ich will, um dies zu tun:
var now = moment.tz("America/Los_Angeles");
var end = moment("2013-08-26 16:55:00"); //plus something to convert LA time
var timeLeft = end.diff(now, "minutes");
Gibt es eine Möglichkeit, das zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In den meisten Fällen, können Sie einfach tun Sie dies:
Wenn Sie eine Eingabe erfordern andere als nach ISO8601, dann geben Sie den format-string als zweiten parameter und die Zeitzone als der Dritte:
Und wenn Sie müssen, verwenden moment die "strenge Analyse" - Modus, dann geht in den Dritten parameter, und die Zeit-zone bewegt sich auf der vierten position:
America/New_York
.Wenn Sie wollen, alles zu berechnen, die in einer bestimmten Zeitzone, die Sie wollen, um den Standard-Zeit-zone über
A)
moment.tz.setDefault("America/Los_Angeles");
Für meinen use-case (im node.js Projekt), ich nur setzen Sie es sofort wieder, dass der moment-Module etwa so:
Alle Anrufe zu
moment()
danach erstellen die Zeit, in der "America/Los_Angeles" Einstellung, das ist NICHT das gleiche wie mit:B)
moment.tz("2017-03-04 00:00", "America/Los_Angeles")
ODER
C)
moment("2017-03-04 00:00").tz("America/Los_Angeles")
beide die würde der moment-Objekt in der UTC-Zeit (sofern Sie bereits die Standardeinstellung geändert), und konvertieren Sie es dann zu den Los Angeles Zeitzone.
Ausführung B oder C oben in der browser-Konsole ergibt:
Bemerken _d zeigt 3. März 4:00 PM; dies ist, weil der moment-Objekt erstellt wird mit 4. März 12:00am in UTC-Zeit, dann konvertiert Pazifik-Zeitzone, die 8 Stunden hinter der/den vorherigen Tag.
Quelle: http://momentjs.com/timezone/docs/#/using-timezones/default-timezone/