2014-12-30 5 views
5

В javascript есть много доступных решений, чтобы проверить, находится ли дата в дневное время или нет. [How to check if the DST (Daylight Saving Time) is in effect and if it is what's the offset?].javascript - проверьте, действует ли дневное время для разного часового пояса

Но эти решения работают только тогда, когда кто-то находится в том же часовом поясе, где применим эффект дневного света, ex. Предположим, что мой текущий браузер (клиент) находится в IST (индийский стандарт - там, где есть нет дневного времени изменение), и я хочу проверить, нет ли даты в дневное время или нет для ET (Восточное время - где дневной свет -5, а стандарт - -4). Выше решение (из ссылки) даст мне правильный результат, только если мой часовой пояс системы находится в ET не IST.

Как его рассчитать?

ответ

5

Если вы используете moment.js и это компаньон timezome сценарий, они делают проверку на DST довольно легко:

Проверьте их docs for isDST()

Только для улыбок, 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>