Afficher datetime avec MomentJs sans conversion de fuseau horaire
Parfois je me retrouve avec un datetime sur le front-end d'un site web qui a déjà été ajusté à un moment précis de la zone, et je souhaite l'afficher exactement comme l'est quel que soit le fuseau horaire de l'utilisateur.
Par exemple, disons que j'ai de cette date:
2015-01-22T16:11:36.36-07:00
La -07:00 signifie qu'il est dans la Montagne, et MomentJs le sait et s'ajustent automatiquement pour les utilisateurs dans d'autres fuseaux horaires. Par exemple dire que j'ai d'affichage de la date avec ce code:
moment('2015-01-22T16:11:36.36-07:00').format('l LT')
Un utilisateur de Central (-06:00) va voir le temps que 5:11PM au lieu de 4:11PM. Comment puis-je savoir MomentJs de ne pas modifier pour l'utilisateur du fuseau horaire et affichage de la date /heure?
source d'informationauteur Sgraffite
Vous devez vous connecter pour publier un commentaire.
Utiliser le
utc()
méthode du moment pour enlever le fuseau horaire et affichage tout en temps universel.Qui permettra d'afficher le temps qu'il est en UTC, sans décalage horaire. Si vous souhaitez afficher l'heure comme il a été enregistré dans le client/serveur et le fuseau horaire, vous pouvez analyser les informations de zone lorsque vous construisez un moment d'instance et d'avoir utiliser le fuseau horaire enregistré dans la chaîne à analyser.
Avec l'une de ces approches, vous devriez envisager d'étiquetage le temps pour refléter le fuseau horaire de l'heure correspond à. Sinon, cela pourrait entraîner beaucoup de confusion pour les utilisateurs finaux.
moment().utcOffset(0, true).format()
J'ai créé une extension pour afficher la date /heure sans essayer de s'adapter à l'utilisateur fuseau horaire:
De cette manière, il est facilement réutilisable, même dans les modèles javascript.