2009-07-28 13 views
5

Tôi đang cố gắng so sánh chênh lệch múi giờ GMT từ hệ điều hành với chênh lệch múi giờ GMT từ Date.getTimezoneOffset() của Javascript. Vấn đề là cửa sổ cung cấp một bù đắp dựa trên EST trong khi javascript cho một bù đắp dựa trên EDT. Có sự khác biệt giữa hai giờ này. Có ai biết làm thế nào để làm cho Javascript sử dụng Standard Times như Windows? Cảm ơn bạn.Date.getTimezoneOffset của Javascript()

+0

Làm cách nào bạn truy xuất bù đắp từ hệ điều hành? – Rojo

Trả lời

4

Tại sao không gọi getTimezoneBật vào một ngày mà bạn biết thời gian tiết kiệm ánh sáng ban ngày không có hiệu lực?

javascript:alert(new Date('1/1/2009').getTimezoneOffset()) 

Điều đó sẽ cung cấp 300 (5 giờ).

+0

Cảm ơn sự giúp đỡ! – SquidScareMe

+0

Tính năng này không hoạt động trong FireFox. –

12

Lưu ý rằng câu trả lời được đăng đầu tiên chỉ hoạt động trong một nửa số trường hợp, do đó không hoạt động ở mức trung bình.

Tháng một đầu tiên được biết là không có thời gian tiết kiệm ánh sáng ban ngày chỉ ở bán cầu bắc. Tuy nhiên đó chỉ là một nửa của thế giới.

var jan = new Date(2009, 0, 1, 2, 0, 0), jul = new Date(2009, 6, 1, 2, 0, 0); 
var offset = (jan.getTime() % 24 * 60 * 60 * 1000) > 
      (jul.getTime() % 24 * 60 * 60 * 1000) 
      ?jan.getTimezoneOffset() : jul.getTimezoneOffset(); 
+2

Không xa lánh bất kỳ nhóm nào là ok, nhưng lưu ý rằng "nửa thế giới" phía bắc bao gồm 90% dân số thế giới. – hyperslug

+1

@hyperslug - nếu SquidScareMe chỉ sau giải pháp bán cầu bắc, thì điều đó tốt cho anh ta. Tuy nhiên, SO * nên * cung cấp giải pháp * tốt nhất *, và giải pháp của Steffen về mặt kỹ thuật chính xác hơn (loại tốt nhất chính xác!). – Andrew

+0

Để thực hiện công việc này, đầu tiên tôi nhận được tháng hiện tại và sau đó thay đổi nó ở đó, nơi bạn thấy 6 (tháng Bảy). – MPaulo

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