для моего проекта, мне нужно иметь решение для отображения точной даты и времени для нескольких определенных городов (Лондон, Новый Йорк, Гонконг) вместе с местным временем - независимо от того, где в мире я выполняю этот код 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?)?
Спасибо заранее,
Оливер
проверить http://stackoverflow.com/questions/10087819/convert-date-to-another-timezone-in-javascript –