Javascript 显示带有服务器端自动时间注销的同步倒计时计时器?

Javascript 显示带有服务器端自动时间注销的同步倒计时计时器?,javascript,php,ajax,session,timer,Javascript,Php,Ajax,Session,Timer,下面是一个PHP会话计时器,使用AJAX调用检查“时间” 我希望能够为用户显示某种简单的javascript倒计时显示,例如: function startTimer(duration, display) { var timer = duration, minutes, seconds; setInterval(function () { minutes = parseInt(timer / 60, 10); seconds = parseInt(

下面是一个PHP会话计时器,使用AJAX调用检查“时间”

我希望能够为用户显示某种简单的javascript倒计时显示,例如:

function startTimer(duration, display) {
    var timer = duration, minutes, seconds;
    setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.textContent = minutes + ":" + seconds;

        if (--timer < 0) {
            timer = duration;
        }
    }, 1000);
}

window.onload = function () {
    var length = 60 * 5,
        display = document.querySelector('#time');
    startTimer(length, display);
};
但是var length等于$_SESSION['timeOut']=SomeNumber时指定的值;在php文件中


如何将这些设置为完全同步,并将倒计时输出到屏幕?或者我可以利用php计时,而不必创建js计时器吗?

您可以使用php函数time以秒为单位计算现在的时间,然后将其保存为登录数据库的时间。每次用户刷新页面时,您都必须向他发送$u会话['timeOut']+$time\u of_login-time wich返回到达超时的秒数

$time\u of_从数据库登录

因此,php文件将如下所示:

var length = <? echo $_SESSION['timeOut'] + ($time_of_login) - time(); ?>

如果你想看到页面本身的倒计时,那么你必须使用JavaScript;除非您不断地重新加载页面,否则PHP无法实现这一点,这是毫无意义的。但是,1000毫秒的超时值并不可靠,特别是在较长的时间段内——最好使用JavaScript日期对象来获取实际的当前客户端时间,并计算与此的差异。