Подскажите, что не так?
Есть сайт: 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, время: 05:32. |