0

我有一个游戏网站,我需要在其中显示计时器,直到比赛时间。一旦计时器达到限制,我需要加载游戏。

为此,我使用了jquery countdown。它的工作正常。

我的问题是,如果用户更改系统时间(本地时间),则计时器运行时,剩余时间限制更改并且游戏开始。

如何防止倒数计时器从当地时间开始?请帮我解决问题。

我的代码,

$('#gamewindow').countdown({
        until   : 100,
        layout:'{mn} : {s<}{snn} {s>}',
        onExpiry: function () { 
                $('#gamewindow').load('game.php');         
        },
    });

}); 

<div id="gamewindow"></div>
4

2 回答 2

1

与其通过纯 Javascript 初始化计时器(这将返回client-time,即客户端计算机上的时间),不如依赖server-time,即服务器上的时间。这将使所有玩家的时间标准化。

因此,在访问倒计时页面时,您的 Javascript 计数器将使用服务器的时间进行初始化。您可以使用 AJAX 或一些 hack-y PHP 来执行此操作。对于这个任务,启动是 JS 唯一需要来自服务器的东西的时候;之后,“倒计时”效果将由 JS 管理。当然,这不会是超级同步的,但这个错误是可以原谅的。即使用户使用不同的本地时区设置刷新,JS 也会从服务器时间重新初始化——没问题!

于 2013-08-26T10:31:51.803 回答
0

由于您无法阻止用户更改其系统时间,因此解决方案必须在服务器端。

game.php中,检查是否match_start_time已到达,如果没有,则重定向到等待页面(应再次显示倒数计时器)。

于 2013-08-26T10:34:07.870 回答