web-dev-qa-db-fra.com

Comment utiliser le décalage horaire dans Nodejs?

J'ai besoin du prochain flux:

var a = new Date(1337324400000, 'Europe/Amsterdam'); //+2h
console.log(a); // for example 12:00 Mon ...
a.setTimeZone('Europe/Kiev'); //+3h
console.log(a); // 13:00 Mon ...

Existe-t-il une telle possibilité dans nodejs utils api?

22
Oleg Dats

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)
33
Laurent Couvidou

Moment.js a maintenant Moment Timezone

Installer:

npm install --save moment-timezone

Utilisation:

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

UPDATE: Il y en a un autre maintenant :) https://github.com/mde/timezone-js

Un remplacement instantané compatible avec le fuseau horaire pour la date JavaScript courante . L'objet timezoneJS.Date est compatible API avec JS Date, avec le mêmes méthodes getter et setter - cela devrait marcher dans n'importe quel code qui fonctionne avec des dates JavaScript normales.


non, il n'y en a pas

Mais vous pouvez utiliser moment.js pour simplifier http://momentjs.com/docs/

Vous devez toujours connaître chaque décalage, vous aurez donc besoin d'un mappage tel que {"Europe/Amsterdam":2,"Europe/Kiev":3}

6
Eldar Djafarov

Voir le paquet fuseau horaire en npm. Il contient tout le nécessaire et est purement JS et semble être la meilleure bibliothèque de gestion de fuseaux horaires 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');
  • Timezone est une bibliothèque MicroJS en JavaScript pur, sans dépendance, qui fournit un calcul de date et un formatage de la date tenant compte du fuseau horaire.
  • Le fuseau horaire utilise la base de données IANA pour déterminer l'heure exacte de l'horloge murale n'importe où dans le monde depuis le début de l'heure standard.
  • Les fuseaux horaires formatent 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 en heure POSIX et l'heure locale à l'aide des chaînes de date RFC 3999.
  • Timezone est une bibliothèque de temps complète basée sur des normes en JavaScript pur pour moins de 3K, minifiée et gzippée.
2
Samuel Neff

Utilisez moment-timezone.js, c’est la meilleure option pour analyser, valider et modifier les temps sur différents fuseaux horaires. 

0
Sudhakar Reddy