2013-08-14 2 views
0

для моего проекта, мне нужно иметь решение для отображения точной даты и времени для нескольких определенных городов (Лондон, Новый Йорк, Гонконг) вместе с местным временем - независимо от того, где в мире я выполняю этот код JavaScript. Мне нужно работать в JavaScript без подключения к Интернету (offline HTML).javascript: как рассчитать точную дату и время для разных городов по всему миру

var myowntime = new Date(); 
var myhours = myowntime.getHours(); 
var myminutes = myowntime.getMinutes(); 
var utch = myowntime.getUTCHours(); 
var utcm = myowntime.getUTCMinutes(); 
var localdst; 

var london_hours, london_minutes; 
var ny_hours, ny_minutes; 
var hk_hours, hk_minutes; 

// Local Daylight Saving and TimeZone calculation 

// local DST first 
var jan = new Date(myowntime.getFullYear(), 0, 1); 
var jul = new Date(myowntime.getFullYear(), 6, 1); 
if (myowntime.getTimezoneOffset() < Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset())) { 
    localdst = true; 
} else { 
    localdst = false; 
} 
var dst_hours = 0; 
if (localdst) { 
    dst_hours = (Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset() - myowntime.getTimezoneOffset())/60; 
} 
mydiff_utc_hours = -myowntime.getTimezoneOffset()/60; 
if (localdst) { 
    mydiff_utc_hours -= dst_hours; 
} 

london_hours = utch; 
if (localdst) { 
    london_hours += dst_hours; 
} 
ny_hours = utch - 5; 
if (localdst) { 
    ny_hours += dst_hours; 
} 
hk_hours = utch + 8; // no DST as far as I know 

if (hk_hours > 23) { 
    hk_hours -= 24; 
} 
if (hk_hours < 0) { 
    hk_hours += 24; 
} 

if (ny_hours > 23) { 
    ny_hours -= 24; 
} 
if (ny_hours < 0) { 
    ny_hours += 24; 
} 

if (london_hours > 23) { 
    london_hours -= 24; 
} 
if (london_hours < 0) { 
    london_hours += 24; 
} 

Проблема ... Я могу обнаружить только локальный DST, и я предполагаю, что это +60 минут. Но я тоже использую его для Лондона и Нью-Йорка (это неправильное предположение).

Как рассчитать значение часового пояса других часовых поясов и даты, когда DST применяется в этих часовых поясах. Я был бы счастлив увидеть рабочий пример JS-кода для этого ...

P.S .: Я работаю только с средой MS Windows. Эти ОС содержат всю информацию о времени DST-времени где-то в ее глубинах ... возможно ли получить эту информацию через JS или VBScript откуда-то (WMI?)?

Спасибо заранее,

Оливер

+0

проверить http://stackoverflow.com/questions/10087819/convert-date-to-another-timezone-in-javascript –

ответ