web-dev-qa-db-fra.com

définir le fuseau horaire mondial avec momentjs

J'utilise momentjs pour gérer les dates dans mon application Web. Le serveur renvoie toutes les dates en millisecondes UTC. Maintenant, je dois afficher les dates en appliquant un fuseau horaire spécifique (en fonction des paramètres utilisateur).

Existe-t-il un moyen de définir le fuseau horaire globalement au lieu de changer tous les appels à momentjs pour le gérer?

43
Fabrizio Fortino

Vous pouvez définir le fuseau horaire par défaut dans Moment en utilisant:

moment.tz.setDefault(String);

Par exemple

moment.tz.setDefault("America/New_York");
53
Der Hochstapler

Utilisez la bibliothèque moment-fuseau horaire trouvée sur le même site Web: http://momentjs.com/timezone/ Cela vous permet de faire des choses comme:

moment(utcDateTime).tz(settings.timezone).format(settings.dateFormat);

Je recommande d'implémenter une classe/un objet utilisateur qui a une fonction de service pour traduire UTC dans le fuseau horaire de l'utilisateur. Jetez un œil à ce violon:

http://jsfiddle.net/guidosch/ofd4unhu/4/

Les dates sont servies au format UTC, mais la vue utilise la méthode de formatage de la date de la classe d'utilisateurs pour ajuster et formater la date UTC en fonction des préférences de l'utilisateur.

2
guidos