【发布时间】:2013-01-31 00:24:22
【问题描述】:
我正在尝试制作倒数计时器,它每 60 分钟重置一次,并且不会在每次刷新时重置。
我认为理想的方法是通过时区?
【问题讨论】:
-
时区不重要,你试过什么?
-
由于 HTTP 是无状态的,您需要将服务器上的开始时间存储在 PHP 会话(或 cookie,但服务器端更好)中,并将其用作每个会话的初始化时间页面加载。
我正在尝试制作倒数计时器,它每 60 分钟重置一次,并且不会在每次刷新时重置。
我认为理想的方法是通过时区?
【问题讨论】:
有多种方法可以执行此操作,但通常我建议将 unix-timestamp 存储在 MySQL 数据库中,然后获取先前/存储的 unix-timestamp 并将其与当前时间戳进行比较。 PHP 函数 time() 将为您获取当前时间戳。
如果整个项目都是关于制作一个计数器,您可能可以通过从文本文件写入/加载来实现相同的效果。会话也是如此。
这里有一个小sn-p,可以让您了解如何解决这个问题:
if (($unixtime + (60 * 60)) > time()) //previous time + 60 * 60 sec (60 min).
{
//update counter
}
//present counter
【讨论】: