我想知道如何在PHP中制作倒数计时器。例如,在浏览器游戏中;当你建造一座建筑物或开始研究时,该建筑物的倒计时开始等等。当你关闭计算机或网站并从另一台计算机或其他地方打开它时,你会看到倒计时仍然有效。你能简单解释一下它是如何工作的,或者我应该在google上搜索一下它有什么想法吗?
谢谢!
答案 0 :(得分:2)
使用php获取当前时间并计算事件的结束时间。
<?php
$event_action_time = "3600"; // 1 hour in seconds
$time = time(); // current time
$endtime = $time + $event_action_time; // future date for event to end
// Store endtime in DB
?>
现在您有了结束时间,您可以根据当前时间查询数据库中是否有任何未结束的事件。如果有结果,您可以将结束时间结果分配给php中的变量,并将其传递给jquery countdown。
答案 1 :(得分:2)
您将时间存储在服务器上,可能是某个时间开始(您需要知道持续时间)或结束时间。
在客户端,您将读取此值并根据您从服务器获取的时间制作一个将在浏览器内打勾的计时器。
这是一个超级简单的示例,它将使用浏览器的localStorage
来存储时间值。它将显示自您第一次打开示例后经过的时间:http://jsfiddle.net/ceyw1v5a/
尝试刷新链接以查看计时器值的持久性。我想在这里做一个片段,但出于安全原因,它不允许localStorage。
无论如何,因为客户端计时器很容易被篡改,你应该永远不会依赖它!这意味着,假设您有游戏,并且当某个时间到期时,您获得一枚金币,您应该始终检查服务器上的时间到期,因为恶意用户可以轻松地将计时器设置为零并进行服务器调用,但是由服务器决定时间是否真的过期或是否有作弊尝试。
更新
当您建造建筑物或开始研究时,该建筑物的倒计时开始等。
在这种情况下,过程将是这样的:
关于从服务器获取数据的实际过程会有所不同,具体取决于您的应用结构。例如,您可以在游戏运行时进行AJAX调用以获取服务器数据等。