2015-03-12 3 views
0

У меня есть страница, которая отображает местное время для 10 городов по всему миру. Однако из-за летнего времени (DST) одно из времени вышло на час.JavaScript - проверка на летнее время для часовой пояс

Использование JavaScript, я хочу, чтобы иметь возможность проверять DST, чтобы гарантировать, что отображаемые времена всегда правильные. Это не может быть специфичным для клиента, поскольку эта страница используется людьми во всем мире.

Вот немного кода, который я в настоящее время с помощью:

var today = new Date(); 
    today = convertDateToUTC(today); 

    var houston = today.addHours(-6); 
    var houstonHours = houston.getHours(); 
    var houtstonMinutes = houston.getMinutes(); 
    var houstonTime = houstonHours + ":" + houtstonMinutes; 
    document.getElementById('houston').innerHTML = houstonTime; 
    today = new Date(); 
    today = convertDateToUTC(today); 

    function convertDateToUTC(date) { 
     return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()); 
    } 
+0

http://stackoverflow.com/questions/2532729/daylight-saving-time-and-time-zone-best-practices?rq=1 – briosheje

+0

Существуют такие API, как Google TimeZone, которые расскажут вам, будет ли DST действует в определенном месте. – Barmar

ответ

0

Вы можете использовать 3rd библиотеку партии или же она должна быть ваниль? Если первый, попробуйте moment.js. В частности: http://momentjs.com/docs/#/query/is-dst-shifted/

+0

Я пробовал 'moment.tz (Date.now(),« America/Indiana/Knox »). IsDST()', но он всегда возвращает false – picko

+0

Момент может возвращать false, если данные Timezone для 'America/Indiana/Нокс 'не был загружен. Вы можете подтвердить, что данные часового пояса загружаются как этот 'moment.tz.zone ('America/Indiana/Knox')' –

Смежные вопросы