2012-05-16 14 views

Odpowiedz

31

Można użyć , jak poniżej:

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

Ciekawe rozwiązanie, ale zmienia aktualną strefę czasową procesu. Nie do przyjęcia dla mnie. – Stefan

+6

@Stefan, ustaw "process.env.TZ" na wartość, np. "America/New_York" lub "America/Chicago" i obserwuj zmiany stref czasowych. – weisjohn

+1

Węzeł-czas nie jest dobrym rozwiązaniem, jeśli wdrażasz na platformie Azure, tak jak my. Będziesz miał problemy ze skompilowaniem mostu ... Lepszą opcją jest timezone-js, ponieważ jest to czysty js. Działa również o wiele lepiej. – oligofren

6

UPDATE: jest inny teraz :) https://github.com/mde/timezone-js

strefę czasową obsługą, zastąpienie drop-in dla akcji Data JavaScript. Obiekt timezoneJS.Date jest kompatybilny z interfejsem API z datą JS, z tymi samymi metodami pobierającymi i ustawiającymi - powinien działać poprawnie w każdym kodzie, który działa z normalnymi datami JavaScript.


no nie ma

Ale można użyć moment.js aby ułatwić http://momentjs.com/docs/

Trzeba jeszcze wiedzieć każdy przesunięcie więc trzeba będzie odwzorowanie jak {"Europe/Amsterdam":2,"Europe/Kiev":3}

+0

Czy to znaczy, że muszę utworzyć ten plik z przesunięciami, a także obliczyć czas letni? –

+0

Tak, musisz to zrobić sam, o ile wiem, że nie ma rozwiązania z pudełka. –

+0

dzięki, ale potrzebuję trochę biblioteki, która zrobi to za mnie. –

13

Moment.js ma teraz Moment Timezone

Install:

npm install --save moment-timezone 

Korzystając:

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

pakiet See czasową w KMP. Ma wszystko, co potrzebne, wbudowane i jest czystym JS i wydaje się być najlepszą dostępną biblioteką obsługi stref czasowych.

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'); 
  • czasowa jest biblioteką MicroJS w czystym JavaScript bez zależności, który zapewnia czasowej datę świadomy matematyki i formatowania daty.
  • Strefa czasowa używa bazy danych IANA, aby określić prawidłowy czas zegara ściennego w dowolnym miejscu na świecie przez dowolny czas od początku znormalizowanego czasu.
  • Format czasowy formatuje daty z pełną implementacją formatów strftime, w tym rozszerzeniami daty GNU.
  • Strefa czasowa reprezentuje czas w czasie POSIX i czasie lokalnym, używając ciągów daty RFC 3999.
  • Timezone jest w pełni funkcjonalną opartą na standardach biblioteką czasową w czystym kodzie JavaScript dla wersji 3K minified i gzipped.
0

Stosować chwila timezone.js, to najlepszym rozwiązaniem, aby analizować, walidacji razy & zmieniają się w różnych strefach czasowych.

Powiązane problemy