首页 > 解决方案 > 如何用 PHP 制作秒表?

问题描述

我希望定时器在服务器上的特定时间被激活,如果页面重新加载,按照它停止的定时器,而不是重新启动,同样如果你关闭浏览器,让定时器继续?我不知道该怎么做,或者有可能吗?有任何想法吗?我太感谢你了。

标签: php

解决方案


您可以将信息保存在会话中(如果用户随后清除了他们的 cookie,秒表将丢失):

session_start();

if (array_key_exists('stopwatch', $_SESSION)) {
    $stopwatch = $_SESSION['stopwatch'];
} else {
    $stopwatch = time();
    $_SESSION['stopwatch'] = $stopwatch;
}

$elapsed = time() - $stopwatch;

print "Elapsed time: " . date('H:i:s', $elapsed);

如果不在会话中,则在数据库中(那时您需要登录,因为每个用户都需要自己的秒表)。

如果您想在页面保持打开状态时对其进行计时,则需要 AJAX 和一个更新服务器端会话或基于数据库的秒表的 Javascript 计时器。然后您将有两次,总时间(秒表在三个小时前开始)和屏幕时间(浏览器显示秒表 1 小时 17 分这 3 小时)。

要清除会话秒表,只需删除变量:

unset($_SESSION['stopwatch']);

至于用户离开后“计时器将继续”,只要您不需要在服务器上发生任何事情(例如在秒表达到八小时时做某事),这类工作就可以完成。为此您需要对服务器进行更高程度的控制,并且可能需要所谓的“cron 作业”来在那里或您控制的外部服务器上运行。

如上所述,您可以在知道已经过去多少时间的情况下恢复秒表 -就像秒表一直持续运行一样。


推荐阅读