Вход

Просмотр полной версии : Подскажите, что не так?


Blavkhawk
18.04.2013, 15:59
Есть сайт: 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?

skrudjmakdak
18.04.2013, 16:32
а хоть что он делает код то??

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);

Blavkhawk
18.04.2013, 16:36
Берет время в формате UTC и конвертит.
Проблема в том, что я вижу разные данные.
Результат скрипта не сходится с данными с сайта.

skrudjmakdak
18.04.2013, 16:49
тогда для чего все это??))) я пострел на алгоритм и не понял для чего он нужен, к чему он должен привести.

вот набросал свое (может и не оно конечно, но все же):

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
18.04.2013, 16:55
Это конвертор внутриигрового времени.
Скрипт берет время по гринвичу и конвертит в игровое время.
Собственно это и есть весь смысл скрипта.

Dim@
18.04.2013, 23:12
Blavkhawk,
вы делаете без интервала?

Dim@
18.04.2013, 23:13
И какова разница между минутами и секундами?

Blavkhawk
19.04.2013, 08:06
Blavkhawk,
вы делаете без интервала?

При разовом запуске как мне кажется сути дела это не меняет.
Скрипт же получает данные о времени и конвартит его. Только однократно.

Blavkhawk
19.04.2013, 08:08
И какова разница между минутами и секундами?

Проблема в том, кто она не постоянна.
Минуты плаваю в разнице где то от 45 секунд и до 30 минут.