我有一个游戏网站,我需要在比赛时间之前显示计时器。一旦计时器达到极限,我需要加载游戏。
为此,我使用了jquery countdown。它的工作正常。
我的问题是,当用户更改系统时间(本地时间)时计时器正在运行,剩余时间限制已更改并且游戏已启动。
如何从当地时间开始倒数倒数计时器?请帮我解决问题。
我的代码,
$('#gamewindow').countdown({
until : 100,
layout:'{mn} : {s<}{snn} {s>}',
onExpiry: function () {
$('#gamewindow').load('game.php');
},
});
});
<div id="gamewindow"></div>
答案 0 :(得分:1)
不是通过普通的Javascript初始化计时器(它将返回客户端时间,即客户端计算机上的时间),而应该依赖服务器时间,即服务器上的时间。这将标准化所有玩家的时间。
因此,在访问倒计时页面时,您的Javascript计数器将使用服务器的时间进行初始化。您可以使用AJAX或一些hack-y PHP来执行此操作。对于此任务,启动是JS从服务器获取内容的唯一时间;之后,“倒计时”效应将由JS管理。当然,这不会是超级同步的,但这个错误是非常可以原谅的。即使用户使用不同的本地时区设置刷新,JS也会从服务器时间重新初始化 - 没有问题!
答案 1 :(得分:0)
由于您无法阻止用户更改系统时间,因此解决方案必须是服务器端。
在game.php
中,检查是否已到达match_start_time
,如果没有,请重定向到等待页面(应再次显示倒数计时器)。