Подскажите, что не так?
Есть сайт: http://twzgame.ru/time
Взял с него скрипт: function updateTime() { var now = new Date(); var startHours = now.getUTCHours(); var startMinutes = now.getUTCMinutes(); var startSeconds = now.getUTCSeconds(); var extraHours = Math.floor(startMinutes*6/60)+0; var extraMinutes = Math.floor(startSeconds*6/60); var extraSeconds = 0; var hours = (startHours*6 + extraHours )%24; var minutes = (startMinutes*6 + extraMinutes)%60; var seconds = (startSeconds*6 + extraSeconds)%60; if (seconds < 0) { minutes--; seconds+= 60; } if (minutes < 0) { hours--; minutes+= 60; } if (hours < 0) { hours += 24; } return function() { //Update time if (++seconds == 60) { seconds = 0; minutes++; } if (minutes == 60) { minutes = 0; hours++; } if (hours == 24) { hours = 0; } self.postMessage([hours, minutes, seconds]); } } var updater = updateTime(); setInterval(updater, 166.667); Переделал так: function updateTime() { var now = new Date(); var startHours = now.getUTCHours(); var startMinutes = now.getUTCMinutes(); var startSeconds = now.getUTCSeconds(); var extraHours = Math.floor(startMinutes*6/60)+0; var extraMinutes = Math.floor(startSeconds*6/60); var extraSeconds = 0; var hours = (startHours*6 + extraHours )%24; var minutes = (startMinutes*6 + extraMinutes)%60; var seconds = (startSeconds*6 + extraSeconds)%60; if (seconds < 0) { minutes--; seconds+= 60; } if (minutes < 0) { hours--; minutes+= 60; } if (hours < 0) { hours += 24; } //Update time if (++seconds == 60) { seconds = 0; minutes++; } if (minutes == 60) { minutes = 0; hours++; } if (hours == 24) { hours = 0; } WScript.Echo (hours + ':' + minutes + ':' + seconds); } var updater = updateTime(); Вопрос: Почему разные минуты и секунды на сайте и в Echo? |
а хоть что он делает код то??
function updateTime() { var now = new Date(); var startHours = now.getUTCHours(); var startMinutes = now.getUTCMinutes(); var startSeconds = now.getUTCSeconds(); //------------------------ console.log(startHours + ':' + startMinutes + ':' + startSeconds); var extraHours = Math.floor(startMinutes*6/60)+0; var extraMinutes = Math.floor(startSeconds*6/60); var extraSeconds = 0; //------------------------ console.log(extraHours + ':' + extraMinutes + ':' + extraSeconds); var hours = (startHours*6 + extraHours )%24; var minutes = (startMinutes*6 + extraMinutes)%60; var seconds = (startSeconds*6 + extraSeconds)%60; //------------------------ console.log(hours + ':' + minutes + ':' + seconds); if (seconds < 0) { minutes--; seconds+= 60; } if (minutes < 0) { hours--; minutes+= 60; } if (hours < 0) { hours += 24; } //Update time if (++seconds == 60) { seconds = 0; minutes++; } if (minutes == 60) { minutes = 0; hours++; } if (hours == 24) { hours = 0; } console.log(hours + ':' + minutes + ':' + seconds); } setInterval(updateTime, 1000); |
Берет время в формате UTC и конвертит.
Проблема в том, что я вижу разные данные. Результат скрипта не сходится с данными с сайта. |
тогда для чего все это??))) я пострел на алгоритм и не понял для чего он нужен, к чему он должен привести.
вот набросал свое (может и не оно конечно, но все же): var updateTime = function() { var date = new Date(); var hours = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); console.log(hours + ':' + minutes + ':' + seconds); } setInterval(updateTime, 1000); |
Это конвертор внутриигрового времени.
Скрипт берет время по гринвичу и конвертит в игровое время. Собственно это и есть весь смысл скрипта. |
Blavkhawk,
вы делаете без интервала? |
И какова разница между минутами и секундами?
|
Цитата:
Скрипт же получает данные о времени и конвартит его. Только однократно. |
Цитата:
Минуты плаваю в разнице где то от 45 секунд и до 30 минут. |
Часовой пояс GMT +3, время: 13:59. |