Показать сообщение отдельно
  #4 (permalink)  
Старый 09.10.2014, 20:54
Аватар для XelaNimed
Интересующийся
Отправить личное сообщение для XelaNimed Посмотреть профиль Найти все сообщения от XelaNimed
 
Регистрация: 07.02.2010
Сообщений: 23

Здравствуйте.
Проанализируйте свой код... Особенно строку
check24(((gmt - х) > 24) ? ((gmt - х) - 24) : (gmt - х))

Может так пойдет?!
function GetTime() {
    
    var offset = arguments[0] || 0;
    
    var d = new Date();

    // количество миллисекунд, прошедших с 1 января 1970
    var localTime = d.getTime();

    // получаем локальное UTC смещение в минутах и конвертируем в миллисекунды
    var localOffset = d.getTimezoneOffset() * 60000;

    // получаем текущее время UTC добавляя сдвиг местного времени
    var utc = localTime + localOffset;

    return new Date(utc + (3600000 * offset));
}

// Пример использования

var cities = {
    "Almaty" : 6,
    "Amman"  : 2,
    "Amsterdam" : 1,
    "Buenos Aires" : -3,
    "Baghdad" : 3,
    "Bahrain" : 3,
    "Baku" : 4,
    "Bangkok" : 7,
    "Berlin" : 1,
    "Bombay" : 5.5
};

console.log("Local time is "+new Date().toLocaleString());

for(var city in cities){
    var offset = cities[city];
    console.log("Local time in "+city+" is "+GetTime(offset).toLocaleString());
}

Последний раз редактировалось XelaNimed, 10.10.2014 в 14:09.
Ответить с цитированием