2012-05-16 3 views

Répondre

31

Vous pouvez utiliser node-time, comme suit:

var time = require('time'); 

var a = new time.Date(1337324400000); 

a.setTimezone('Europe/Amsterdam'); 
console.log(a.toString()); // Fri May 18 2012 09:00:00 GMT+0200 (CEST) 
a.setTimezone('Europe/Kiev'); 
console.log(a.toString()); // Fri May 18 2012 10:00:00 GMT+0300 (EEST) 
+2

Solution intéressante mais qui change le fuseau horaire actuel du processus. Pas acceptable pour moi. – Stefan

+6

@Stefan, définissez 'process.env.TZ' sur une valeur telle que' America/New_York' ou 'America/Chicago' et regardez les fuseaux horaires changer. – weisjohn

+1

node-time n'est pas une bonne option si vous déployez sur Azure, comme nous le faisons. Vous aurez des problèmes pour compiler le pont ... Une meilleure option est timezone-js car c'est du js pur. Il fonctionne aussi beaucoup mieux. – oligofren

6

MISE À JOUR: il y a un autre maintenant :) https://github.com/mde/timezone-js

Un fuseau horaire activé, le remplacement sans rendez-vous pour le stock JavaScript date. L'objet est timezoneJS.Date API compatible avec JS Date, avec les mêmes méthodes getter et setter - il devrait fonctionner correctement dans un code qui fonctionne avec Dates JavaScript normales.


pas il n'y a pas

Mais vous pouvez utiliser moment.js pour le rendre plus facile http://momentjs.com/docs/

Vous devez toujours connaître décalage de sorte que vous aurez besoin de cartographie comme {"Europe/Amsterdam":2,"Europe/Kiev":3}

+0

Cela signifie-t-il que je dois créer ce fichier avec des décalages et calculer l'heure d'été? –

+0

oui, vous devrez le faire par vous-même, autant que je sache, il n'y a pas de solution prête à l'emploi. –

+0

merci, mais j'ai besoin d'une bibliothèque qui le fera pour moi. –

13

Moment.js a maintenant Moment Timezone

Installation:

npm install --save moment-timezone 

Utilisation:

var Moment = require('moment-timezone'); 
Moment().tz('America/Los_Angeles').format(); 
1

package Voir NPM Fuseau horaire. Il a tout intégré nécessaire et est pure JS et semble être la meilleure bibliothèque de gestion de fuseau horaire disponible.

https://www.npmjs.com/package/timezone

http://bigeasy.github.io/timezone/

var tz = require('timezone/loaded'), 
    equal = require('assert').equal, 
    utc; 

// Get POSIX time in UTC. 
utc = tz('2012-01-01'); 

// Convert UTC time to local time in a localize language. 
equal(tz(utc, '%c', 'fr_FR', 'America/Montreal'), 
     'sam. 31 déc. 2011 19:00:00 EST'); 
  • fuseauHoraire une bibliothèque MicroJS en JavaScript pur, sans dépendances qui fournit les mathématiques date aware fuseau horaire et le formatage de la date.
  • Fuseau horaire utilise pour tout le temps depuis l'aube du temps normalisé la base de données IANA pour déterminer le temps d'horloge murale correcte partout dans le monde.
  • Timezone met en forme les dates avec une implémentation complète des formats strftime, y compris les extensions de date GNU.
  • Le fuseau horaire représente l'heure à l'heure POSIX et à l'heure locale à l'aide des chaînes de date RFC 3999.
  • Timezone est une bibliothèque de temps basée sur des normes complètes en JavaScript pur pour moins de 3K minifié et gzippé.
0

Utiliser instant-timezone.js, il est une meilleure option pour analyser, valider & temps de changement sur différents fuseaux horaires.

Questions connexes