2014-12-30 22 views
5

Có nhiều giải pháp có sẵn trong javascript để kiểm tra xem ngày có ở trong ánh sáng ban ngày hay không [How to check if the DST (Daylight Saving Time) is in effect and if it is what's the offset?].javascript - kiểm tra xem thời gian ban ngày có hiệu lực cho múi giờ khác nhau

Nhưng giải pháp đó chỉ hoạt động khi có người ở cùng múi giờ có hiệu lực ban ngày, ví dụ. Giả sử trình duyệt hiện tại (máy khách) của tôi là IST (tiêu chuẩn Ấn Độ - nơi có không có ánh sáng ban ngày thay đổi) và tôi muốn kiểm tra xem ngày có trong ánh sáng ban ngày hay không cho ET (giờ miền Đông - nơi ánh sáng ban ngày là -5 và tiêu chuẩn là -4). Giải pháp trên (từ liên kết) sẽ cho tôi kết quả chính xác chỉ khi múi giờ của hệ thống của tôi là ET chứ không phải IST.

Tôi có thể tính toán bằng cách nào?

Trả lời

5

Nếu bạn sử dụng moment.js và nó đồng hành timezome kịch bản, họ làm cho việc kiểm tra cho DST khá dễ dàng:

Check-out của họ docs for isDST()

Chỉ cần cho những nụ cười, here's a fiddle testing each timezone

if(moment.tz("America/New_York").isDST()){ 
 
    $('#test').append('NY is currently in DST'); 
 
} 
 
else{ 
 
    $('#test').append('NY is NOT currently in DST'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.3/moment.min.js"></script> 
 
<script src="http://momentjs.com/downloads/moment-timezone-with-data.min.js"></script> 
 

 

 

 
<div id="test"></div>

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