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

Здравствуйте.
Вы выводили document.clock в консоль? Как Вы выводите результаты? В каких браузерах наблюдается ошибка?

Запустил Ваш код на Google Chrome v.37.0.2062.124 и вывел переменные в консоль (__proto убрано для "удобочитаемости").
function GetTime() {
console.clear();
    var dt = new Date();
    console.log("dt=%O", dt);
    var def = dt.getTimezoneOffset()/60;
    console.log("def="+def);
    var gmt = (dt.getHours() + def);
    console.log("gmt="+gmt);

    *!*
    document.clock = {
        "local" : {},
        "NewYork" : {},
        "London" : {},
        "Tokyo" : {},
        "Cydney" : {},
        "Moscow" : {},
        "Kiev" : {},
        "_GMT" : {}
    };
    */!*

    document.clock.local.value = (IfZero(dt.getHours()) + ":" + IfZero(dt.getMinutes()) + ":" + IfZero(dt.getSeconds()));
    
    var ending = ":" + IfZero(dt.getMinutes()) + ":" + IfZero(dt.getSeconds());
    console.log("ending="+ending);

    var isr =check24(((gmt - 4) > 24) ? ((gmt - 4) - 24) : (gmt - 4));
    document.clock.NewYork.value = (IfZero(isr) + ending);
    
    var msw =check24(((gmt + 1) > 24) ? ((gmt + 1) - 24) : (gmt + 1));
    document.clock.London.value = (IfZero(msw) + ending);
    
    var baku =check24(((gmt + 9) > 24) ? ((gmt + 9) - 24) : (gmt + 9));
    document.clock.Tokyo.value = (IfZero(baku) + ending);
    
    var del =check24(((gmt - 4) > 24) ? ((gmt - 4) - 24) : (gmt - 4));
    document.clock.Cydney.value = (IfZero(del) + ending);
    
    var dh =check24(((gmt + 4) > 24) ? ((gmt + 4) - 24) : (gmt + 4));
    document.clock.Moscow.value = (IfZero(dh) + ending);
    
    var kok =check24(((gmt +3 ) > 24) ? ((gmt +3 ) - 24) : (gmt + 3));
    document.clock.Kiev.value = (IfZero(kok) + ending);


    var _GMT =check24(((gmt) > 24) ? ((gmt) - 24) : (gmt));

    document.clock._GMT.value = (IfZero(_GMT) + ":" + IfZero(dt.getMinutes()) + ":" + IfZero(dt.getSeconds()));
    
    console.log("document.clock=%O", document.clock);
}

function IfZero(num) {
    return ((num <= 9) ? ("0" + num) : num);
}

function check24(hour) {
    return (hour >= 24) ? hour - 24 : hour;
}

GetTime();

Код:
// Console output
dt=Wed Oct 08 2014 12:10:21 GMT+0200 (Central Europe Daylight Time)
def=-2
gmt=10
ending=":10:21"
document.clock=Object
    Cydney: Object
        value: "06:10:21"
    Kiev: Object
        value: "13:10:21"
    London: Object
        value: "11:10:21"
    Moscow: Object
        value: "14:10:21"
    NewYork: Object
        value: "06:10:21"
    Tokyo: Object
        value: "19:10:21"
    _GMT: Object
        value: "10:10:21"
    local: Object
        value: "12:10:21"
Можете сами запустить в Chrome и посмотреть на вывод.
P.S.: выделенный код добавлен для исключения ошибки "Cannot read property 'local' of undefined".

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