Comment créer l'heure dans un fuseau horaire spécifique avec moment.js
J'ai ce client qui m'envoie un pré formaté de temps en temps de l'ensemble de la zone, mais sans aucune information pour le fuseau horaire. Les cordes sont comme: "2013-08-26 16:55:00".
Je peux créer un nouveau moment.js exemple avec cette chaîne:
var time = moment("2013-08-26 16:55:00") //this creates time in my tz
mais cela ne fera que créer une instance dans ma propre fuseau horaire.
Moment.js avoir un plugin qui permet de créer des instances de l'objet dans certaines zones de temps et il fonctionne très bien, mais je ne peux pas dire à quelle heure je veux l'objet de point de.
Si je suis à New York et je fais ceci:
var time = moment("2013-08-26 16:55:00").tz("America/Los_Angeles");
la résultante de temps sera de 13:55 au lieu de 16:55 dans LA.
Ce que je veux, c'est créer une instance qui va dire 16:55, mais à LA fois.
La raison pour laquelle je suis demander c'est parce que je veux faire:
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");
Est-il un moyen de le faire?
Vous devez vous connecter pour publier un commentaire.
Dans la plupart des cas, vous pouvez simplement faire ceci:
Si vous avez besoin d'entrée autres que les ISO8601, puis spécifiez le format de chaîne de caractères en tant que second paramètre, et le fuseau horaire, comme la troisième:
Et si vous avez besoin d'utiliser moment de la "stricte analyse" mode, puis qui va dans le troisième paramètre, et le fuseau horaire passe à la quatrième position:
America/New_York
.Si vous voulez calculer le tout dans un fuseau horaire que vous souhaitez définir le fuseau horaire par défaut à l'aide de
A)
moment.tz.setDefault("America/Los_Angeles");
Pour mon cas d'utilisation (dans un node.js projet) je l'ai juste mis juste après nécessitant le moment modules comme:
Tous les appels à
moment()
par la suite permettra de créer le temps dans le "America/Los_Angeles", ce qui n'est PAS le même que l'aide:B)
moment.tz("2017-03-04 00:00", "America/Los_Angeles")
OU
C)
moment("2017-03-04 00:00").tz("America/Los_Angeles")
les deux de créer le moment d'objet en heure UTC (sauf si vous avez déjà changé la valeur par défaut), puis de le convertir à Los Angeles le fuseau horaire.
Course B ou C ci-dessus dans le navigateur de la console, on obtient:
Avis _d montre 3 Mars 4:00pm; c'est parce qu'au moment où l'objet est créé avec le 4 Mars à 12:00 en heure UTC, puis converti en un fuseau horaire du Pacifique, qui est de 8 heures derrière/le jour précédent.
source: http://momentjs.com/timezone/docs/#/using-timezones/default-timezone/