2012-05-16 42 views

Respuesta

31

Puede usar node-time, de la siguiente manera:

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

Solución interesante pero cambia la zona horaria del proceso actual. No es aceptable para mi – Stefan

+6

@Stefan, configure 'process.env.TZ' con algún valor, como' America/New_York' o 'America/Chicago' y observe cómo cambian las zonas horarias. – weisjohn

+1

Node-time no es una buena opción si implementa en Azure, como hacemos nosotros. Tendrá problemas para compilar el puente ... Una mejor opción es timezone-js, ya que es pura js. También funciona mucho mejor. – oligofren

6

ACTUALIZACIÓN: hay otro ahora :) https://github.com/mde/timezone-js

A, reemplazo de abandono en el huso horario habilitado para el stock JavaScript fecha. El objeto timezoneJS.Date es compatible con API con JS Date, con los mismos métodos getter y setter , debería funcionar bien en cualquier código que funcione con fechas de JavaScript normales.


No, no hay

pero se puede utilizar moment.js para que sea más fácil http://momentjs.com/docs/

Usted todavía necesita saber cada desplazamiento por lo que tendrá como mapeo {"Europe/Amsterdam":2,"Europe/Kiev":3}

+0

¿Significa que necesito crear este archivo con compensaciones y también calcular el horario de verano? –

+0

Sí, tendrá que hacerlo usted mismo, por lo que yo sé, no hay una solución lista para usar. –

+0

gracias, pero necesito una biblioteca que lo haga por mí. –

13

Moment.js tiene ahora Moment Timezone

Instalar:

npm install --save moment-timezone 

Uso:

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

paquete Ver Zona horaria en la NGP. Tiene todo lo necesario incorporado y es JS puro y parece ser la mejor biblioteca de manejo de zona horaria 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'); 
  • zona horaria es una biblioteca MicroJS en JavaScript puro, sin dependencias que proporciona zona horaria conscientes matemáticas fecha y el formato de fechas.
  • La zona horaria utiliza la base de datos IANA para determinar el tiempo correcto del reloj de pared en cualquier lugar del mundo en cualquier momento desde el comienzo del tiempo estandarizado.
  • Fechas de formatos de zona horaria con una implementación completa de formatos strftime, incluidas las extensiones de fecha GNU.
  • La zona horaria representa el tiempo en la hora POSIX y la hora local usando las cadenas de fecha RFC 3999.
  • Timezone es una biblioteca de tiempo basada en estándares con funciones completas en JavaScript puro para menos de 3K minified y gzipped.
0

Use momento, timezone.js, es una mejor opción para analizar, validar veces & de cambio a través de diferentes zonas horarias.

Cuestiones relacionadas