Moment.Js: décalage des dates à l'aide du décalage UTC et du fuseau horaire
J'essaie d'ajuster une heure en utilisant un décalage de fuseau horaire et un horodatage UTC.
J'exécute le code suivant:
var date = {
utc: '2013-10-16T21:31:51',
offset: -480
}
var returnDate = moment(date.utc).utc().zone(date.offset).format('MM/DD/YYYY h:mm A');
Ce que j'attends est: 10/16/2013 1:31 PM
, mais je suis finir avec 10/17/2013 9:31 AM
23
demandé sur
Neil
2014-01-15 21:37:24
2 réponses
Voici ce qui a fonctionné pour moi:
var date = {
utc: '2013-10-16T21:31:51',
offset: 480
}
var returnDate = moment.utc(date.utc).zone(date.offset).format('MM/DD/YYYY h:mm A');
Si vous avez remarqué, j'ai changé le décalage en un nombre positif. Cela a donné le résultat souhaité. Si le décalage a été laissé à -480
la sortie était 10/17/2013 5:31 AM
.
Il existe une méthode moment#UTC qui initialise la date comme UTC par rapport à l'heure locale.
18
répondu
Neil Kistner
2014-01-15 18:04:30
J'utilise la bibliothèque jstimezonedetect pour déterminer le nom du fuseau horaire au lieu du décalage.
Ensuite, utilisez ceci sur un horodatage UTC:
timestamp = moment.tz(timestamp, tz.name());
timestamp.format('MM/DD/YYYY h:mm A');
2
répondu
Asa Carter
2014-07-22 09:41:47