2017-08-25 5 views
0

Pour une raison quelconque, lorsque je récupère une date enregistrée précédente dans la base de données et tente de la convertir en heure locale, elle diffère de l'heure actuelle.moment.js - lequel serait le résultat correct, vu que mon fuseau horaire est GMT-3?

Ceci est mon code:

// got accessToken from database 
console.log(moment(accessToken.expiresAt).toDate()); 
console.log(moment().toDate()); 

La sortie est:

Fri Aug 25 2017 20:47:51 GMT-0300 (BRT) 
Fri Aug 25 2017 17:47:51 GMT-0300 (BRT) 

Considérant que mon heure est 25/Août/2017 17:47:51 et que le accessToken.expiresAt a été enregistré dans la même demande (en même temps), lequel serait la bonne sortie?

Et si quelqu'un a une idée de la raison pour laquelle mon temps stocké (stocké comme timestamp dans mysql) est différent de l'heure actuelle, s'il vous plaît me conduire à une direction.

Merci à l'avance.

+4

ce qui montre 'console.log (accessToken.expiresAt)'? – alexmac

+2

Ma conjecture est que votre entrée est basée sur UTC mais n'est pas spécifiée en tant que telle. Sans voir votre entrée exacte ('accessToken.expiresAt'), c'est impossible à dire. –

Répondre

1

Moment.js probablement supposé que la vous avez enregistré était en UTC temps jeton d'accès - essayez ceci:

console.log(moment(accessToken.expiresAt).utc().toDate()); 

Vous pouvez vérifier la différence entre votre fuseau horaire local et UTC en entrant votre horodatage dans un convertisseur de date telle comme http://www.convertunixdate.com - pour obtenir votre horodatage, exécutez ceci:

moment(accessToken.expiresAt).unix()