418 votes

Conversion de la période UTC en date locale avec javascript

Je me bats avec ce pour un peu maintenant. Je suis en train de convertir d'une époque à l'objet date. L'époque m'est envoyé en UTC. Chaque fois que vous passez new Date() d'une époque, il suppose qu'il s'local de l'époque. J'ai essayé de créer un UTC objet, puis à l'aide de setTime() pour l'ajuster à la bonne époque, mais la seule méthode qui me semble utile est - toUTCString() et les chaînes ne m'aide pas. Si je passe cette chaîne dans une nouvelle date, il est à noter que c'est l'heure UTC, mais il n'a pas

new Date( new Date().toUTCString() ).toLocaleString()

Ma prochaine tentative était d'essayer d'obtenir la différence entre le local époque actuelle et l'heure utc actuelle de l'époque, mais je n'étais pas en mesure d'obtenir que soit.

new Date( new Date().toUTCString() ).getTime() - new Date().getTime()

C'est seulement en me donnant de très petites différences, en vertu de 1000, ce qui est en millisecondes.

Toutes les suggestions?

677voto

user1030503 Points 1140

Je pense que j’ai une solution plus simple--la date initiale de la valeur à l’époque et ajouter des unités de l’UTC. Que vous ayez un UTC époque var stocké en quelques secondes. Que diriez-vous `` . Pour convertir qu’à une date appropriée dans le fuseau horaire local :

est maintenant une date (dans mon fuseau horaire) la valeur

372voto

djechlin Points 18051

C’est facile, `` prend juste millisecondes, par exemple

40voto

logic8 Points 177

Temps de l’époque est en secondes depuis le 1er janvier 1970. ``retours millisecondes depuis le 1er janvier 1970, so. Si vous avez un époque timestamp, le convertir en un timestamp javascript en multipliant par 1000.

35voto

Gus Points 382

Et juste pour les journaux, je l’ai fait à l’aide de la bibliothèque de Moment.js , que j’utilisais pour le formatage de toute façon.

17voto

chris Points 81
 function ToLocalDate (inDate) {
    var date = new Date();
    date.setTime(inDate.valueOf() - 60000 * inDate.getTimezoneOffset());
    return date;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X