Question

Je viens de créer un blog de script, mais quand j'ajoute un commentaire.
Le timestamp dans la base de données est 2014-07-29 18:55:00 même que l'horloge de mon PC est 2014-07-29 20:55:00.

Donc je voudrais changer l'heure en fonction du fuseau horaire.

Alors, j'ai essayé avec ce code (où le timestamp est 2014-07-29 18:55:00):

var UTC = moment.tz(timestamp, "UTC");
timestamp = UTC.clone().tz(timezone).format('YYYY/MM/DD H:mm:ss');

Note: window.timezone est définie à l'aide du code suivant:

var tz = jstz.determine();
var timezone = tz.name();

Le temps que je veux sortir est 2014/07/29 20:55:00, mais j'obtiens ceci: 2014/07/29 17:53:47

Je suis en utilisant les bibliothèques suivantes de ce code ci-dessus:

Espérons que quelqu'un comprend ce qui se passe.

NOTE:Je vis dans Europe/Denmark qui ont le fuseau horaire UTC/GMT +2 hours

Était-ce utile?

La solution

En outre, pour le script, moment-timezone besoin de données pour fonctionner.Si vous n'avez pas les données sont chargées, dans la version 0.1.x il va utiliser le fuseau horaire local - comme si vous aviez appelé moment() sans tz spécifié. Cela a été corrigé pour la prochaine version 0.2.0, telle qu'elle donne une erreur au lieu d'silencieusement de faire la mauvaise chose.

Normalement, vous pouvez utiliser les données constructeur de fournir des données pour les fuseaux horaires vous intéressait.Cependant, il est actuellement hors ligne parce que le format des données changé dans la dernière version et l'auteur n'a pas encore eu le temps de terminer les mises à jour requises.

En attendant, vous pouvez utiliser l'un des "données-inclus" des versions, téléchargeable en haut de la page principale - par exemple, l'utilisation moment-timezone-2010-2020.js au lieu de simplement moment-timezone.js.

Aussi, vous depuis que vous utilisez jsTimeZoneDetect - vous devez tester la valeur retournée par jstz.determine() pour s'assurer qu'il est en effet le temps de la zone que vous attendiez.Le +2, les décalages sont notoirement difficiles à tester.Voir certains de les problèmes connus.

Autres conseils

Vous pourriez réglez le fuseau horaire

moment().tz("Europe/Denmark").format();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top