2012-05-16 15 views

Trả lời

31

Bạn có thể sử dụng node-time, như sau:

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

Giải pháp thú vị nhưng nó thay đổi múi giờ quy trình hiện tại. Không chấp nhận được với tôi. – Stefan

+6

@Stefan, đặt 'process.env.TZ' thành một số giá trị như' America/New_York' hoặc 'America/Chicago' và xem múi giờ thay đổi. – weisjohn

+1

nút-thời gian không phải là một lựa chọn tốt nếu bạn triển khai trên Azure, như chúng ta làm. Bạn sẽ gặp vấn đề khi biên dịch cầu nối ... Một lựa chọn tốt hơn là múi giờ-js vì đó là js thuần túy. Nó cũng hoạt động tốt hơn rất nhiều. – oligofren

6

UPDATE: có nhau bây giờ :) https://github.com/mde/timezone-js

Một múi giờ cho phép, thả để thay thế cho chứng khoán Javascript ngày. Đối tượng timezoneJS.Date tương thích API với JS Date, với các phương thức getter và setter giống nhau - nó sẽ hoạt động tốt trong bất kỳ mã nào mà hoạt động với các Ngày JavaScript bình thường.


không không có

Nhưng bạn có thể sử dụng moment.js để làm cho nó dễ dàng hơn http://momentjs.com/docs/

Bạn vẫn cần phải biết nhau bù đắp vì vậy bạn sẽ cần lập bản đồ như {"Europe/Amsterdam":2,"Europe/Kiev":3}

+0

Điều đó có nghĩa là tôi cần tạo tệp này có bù trừ và cũng tính thời gian tiết kiệm ánh sáng ban ngày? –

+0

có, bạn sẽ cần phải làm điều đó một mình, theo như tôi biết không có ra khỏi giải pháp hộp. –

+0

cảm ơn, nhưng tôi cần một số thư viện mà sẽ làm điều đó cho tôi. –

13

Moment.js hiện có Moment Timezone

Install:

npm install --save moment-timezone 

Sử dụng:

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

Xem múi giờ gói trong NPM. Nó có mọi thứ cần thiết được xây dựng và là JS thuần túy và dường như là thư viện xử lý múi giờ tốt nhất hiện có.

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'); 
  • Múi giờ là một thư viện MicroJS trong JavaScript thuần tuý không có phụ thuộc mà cung cấp múi giờ ý thức toán học ngày và định dạng ngày.
  • Múi giờ sử dụng Cơ sở dữ liệu IANA để xác định thời gian đồng hồ treo tường chính xác ở bất cứ nơi nào trên thế giới bất kỳ lúc nào kể từ bình minh của thời gian chuẩn hóa.
  • Định dạng múi giờ ngày với việc triển khai đầy đủ các định dạng strftime, bao gồm cả tiện ích mở rộng ngày của GNU.
  • Múi giờ thể hiện thời gian trong thời gian POSIX và giờ địa phương bằng cách sử dụng chuỗi ngày tháng RFC 3999.
  • Múi giờ là thư viện thời gian dựa trên tiêu chuẩn đầy đủ tính năng trong JavaScript thuần túy cho dưới 3K được rút gọn và được nén.
0

Sử dụng khoảnh khắc timezone.js, đó là một lựa chọn tốt nhất để phân tích, xác nhận lần & thay đổi theo múi giờ khác nhau.

Các vấn đề liên quan