如何制作 4 小时自动重启计时器
How to make a 4 hour auto restarting timer?
我需要一个计时器一次倒计时 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" width="15px">
<p style="text-align: left;"></p>
</td>
</tbody>
</table>
</div>
倒计时 30 分钟,然后重置回 30。然而,当它到达最后一秒时,它会数到 60,而不是直接到 59(所以 4:00/3:60/3:59)。此外,它还需要从美国东部标准时间中午(中午 12 点)开始倒计时。我希望时间以h:mm:ss
格式显示,我也错过了上述代码的小时。
使用 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 小时)检查之间,它不太可能太高。
这到底是为了什么?
相关文章:
- 如果弹出窗口关闭,Javascript停止/重置计时器
- 试图创建一个24小时计时器来重置自己
- 重置图像滑块的Javascript计时器
- 如何使php中的多重计时器即使页面刷新也不会重置
- jQuery重置setInterval计时器
- 重置计时器
- 倒数计时器在任何用户活动(例如 onkeyup、鼠标移动等)上重置
- 单击时重置计时器以进行显示和隐藏 - jquery
- 调用函数时Jquery倒计时重置计时器
- Javascript重定向和重置计时器
- 当用户打字或点击屏幕时重置计时器
- Javascript在闭包内重启定时器
- 刷新时不重启的Jquery/Javascript计时器
- 如何在元素上设置计时器,使其淡出,并在元素被单击打开时重置计时器
- 使用javascript的倒计时计时器不应该在重新加载时重启
- 倒计时计时器-如何避免重置计时器
- 如何在一个网站上用Java停止或重置计时器
- 用javascript启动和停止/重置计时器
- 如何制作 4 小时自动重启计时器
- 在幻灯片上使用上一个时重置计时器