La date de réception du serveur est dans le fuseau horaire UTC
et je dois la convertir en un fuseau horaire particulier, par exemple: America/New_York
.Suivant est le code pour le même
<span class="bold" ng-bind="sess.date_time | amTimezone:'America/New_York' | amDateFormat:'h:mm a'"></span>
Mais ce faisant, j'obtiens l'erreur suivante:
Moment Timezone has no data for America/New_York. See http://momentjs.com/timezone/docs/#/data-loading/.
Mais America/New_York
est un fuseau horaire connu pour moment
mais il me demande toujours d'ajouter le fuseau horaire.
Vous devez charger tous les éléments suivants:
Sur la page d'accueil moment-timezone , il existe trois distributions différentes de moment-timezone.
moment-timezone.js
est juste le script. Il ne contient aucune donnée de fuseau horaire. Si vous utilisez cette distribution, vous devez extraire vos propres données de fuseau horaire, soit par moment.tz.add
, ou moment.tz.load
, comme décrit dans la documentation.
moment-timezone-with-data.js
inclut toutes les données de fuseau horaire connues de la base de données tz , pour la version mentionnée sur le site Web.
moment-timezone-with-data-2012-2022.js
inclut les mêmes données tz, mais est tronqué pour les années 2012 à 2022 seulement. Il s'agit d'un fichier de données beaucoup plus petit et suffisant pour la majorité d'applications côté navigateur.
Il existe également des versions minifiées de chacun.
Donc, si vous obtenez "Moment Timezone has no data for America/New_York"
, puisque America/New_York
est un identifiant de base de données TZ valide, alors vous n'avez tout simplement pas chargé les données. Vous utilisez probablement moment-timezone.js
sans y ajouter de données. Soit inclure des données de fuseau horaire avec moment.tz.add
, ou (de manière plus appropriée) basculez vers l'un des fichiers qui inclut déjà toutes les données de fuseau horaire.
Cependant, ne faites pas les deux. Les données de fuseau horaire ne doivent être chargées qu'une seule fois et les scripts de fuseau horaire ne doivent être chargés qu'une seule fois. Si vous utilisez soit moment-timezone-with-data.js
ou moment-timezone-with-data-2012-2022.js
, vous ne devez pas utiliser moment-timezone.js
, car ce script est déjà inclus.