如何制作 4 小时自动重启计时器?
Posted
技术标签:
【中文标题】如何制作 4 小时自动重启计时器?【英文标题】:How to make a 4 hour auto restarting timer? 【发布时间】:2013-02-02 02:09:27 【问题描述】:我需要一个计时器来一次倒计时 4 小时,然后在达到 0 后重新启动。所有客户端的剩余时间必须相同。我目前有这个:
function addZero(i)
if (i < 10)
i = "0" + i;
return i;
setInterval(function()
function addZero(i)
if (i < 10)
i = "0" + i;
return i;
var d = new Date();
var s = (d.getSeconds());
var m = (d.getMinutes());
var x = document.getElementById("timer");
var c = addZero(30 - m) + ":" + addZero(60 - s);
var d = addZero(60 - m) + ":" + addZero(60 - s);
if (m < 30)
t = c
else
t = d
x.innerhtml = t;
, 250)
<div align="center">
<table>
<tbody>
<td style="font-size:15px;">Time to next restart:</td>
<td style="font-size:16px;" id="timer"></td>
<td nowrap="nowrap" >
<p style="text-align: left;"></p>
</td>
</tbody>
</table>
</div>
倒计时 30 分钟,然后重置回 30。但是,当它到达最后一秒时,它会计算 60,而不是直接到 59(所以 4:00/3:60/3:59)。它还需要从美国东部标准时间中午(中午 12 点)开始倒计时。我想以h:mm:ss
格式显示时间,我也错过了上面代码中的时间。
【问题讨论】:
那么这里的问题到底是什么? 指定您要查找的内容。实际上,这听起来很像您要求人们为您编写代码。此外,您当前的 javascript 将访问客户端时间,而不是服务器时间,因此“12 点”对于某些用户来说会有所不同。 【参考方案1】:使用 php 来获取初始页面加载的日期/时间,而不是客户端/JS Date() - 这可能在机器之间有很大的不同,因此如果您希望客户端同步它是毫无价值的(PHP 日期将来自服务器时钟,所以只要它是正确的,您可以将多个客户端同步到它)。即使以这段时间为基准,然后在客户端倒计时四个小时,也不太可能导致时间同步良好 - 我会定期参考服务器进行同步。
至于你显示 60 的问题,你能不能只替换代码中的数字 像这样:
var d = addZero(60 - m) + ":" + addZero(60 - s);
变成
var d = addZero(59 - m) + ":" + addZero(59 - s);
?
看到返回值将始终为 0-59,这只会将其反转,您不会得到负数,它将显示数字时钟的实际值(您永远不会看到它们达到 60 分钟/秒,它们重置为 0)。
我会用 JS 计算分钟/秒,因为如此频繁地引用服务器是没有意义的 - 如果在同步时发现不一致,如果你不离开,它不太可能太高检查之间的时间很长(例如 4 小时)。
这究竟是为了什么?
【讨论】:
以上是关于如何制作 4 小时自动重启计时器?的主要内容,如果未能解决你的问题,请参考以下文章
系统Windows Server 2003,要求每隔2小时自动重启一次服务器,并且每天都是一样?
MySQL解决8小时内没有进行数据库操作, mysql自动断开连接, 需要重启tomcat的问题
IIS每隔一段时间就无法进行访问,重启服务也不行,必须重启服务器才可以,请问是啥情况?如何解决?