如何在JS/PHP的Microtime中从服务器时间倒计时到最接近的半小时


How can I count down from the server time to the nearest half-hour in Microtime in 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的速度运行。我如何计算从ticktimer中减去的正确值,使其在服务器执行操作的同时达到半小时?我知道它可能有点偏离…但1000000显然不是!

您可以执行以下操作,在服务器响应时调用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");
}