Как я могу отсчитывать время от сервера до ближайших получаса в Microtime в JS / PHP?

В настоящее время у меня есть частичное решение, но я не могу найти правильную итерацию. Я также мог бы сделать это совершенно неправильно. Сначала в PHP я получаю текущее время и конвертирую его в микросекунды. Он рассчитывается так, что разница указывается с точностью до получаса:

$remaining = 30 - (date('i', time()) % 30);

Это помещается в файл JSON и отправляется в систему, которую я пишу в Javascript, с помощью EaselJS.
(РЕДАКТИРОВАТЬ: я забыл упомянуть, что он конвертируется в MicroTime перед отправкой)

Как только файл загружен, bool переключается на «true» и начинает обратный отсчет:

function UpdateGame(event)
{
if (ready == true)
{
stage.update();

if (TickTimerReady == true)
{
ticktimer = ticktimer - 1000000;
console.log(ticktimer);
}
}
}

Теперь вот сложная часть: UpdateGame — это тиковое событие, работающее со скоростью 40 FPS. Как я могу рассчитать правильные значения для вычитания из тиктимера, чтобы он достиг получаса в то же время, что и сервер? Я понимаю, что это может быть немного не так … но 1000000 явно не так!

0

Решение

Вы могли бы сделать что-то вроде следующего, где вы могли бы позвонить timer() когда сервер отвечает, и просто делайте все, что вам нужно сделать, как только прошло 30 минут.

var seconds = 0;
timer = function(){ setInterval(count,1000); }
count = function(){
seconds++;
if (seconds === (30*60)) window.alert("it's been 30 minutes do stuff");
}
0

Другие решения

Других решений пока нет …