[英]Javascript repeating countdown timer to midday
我正在尝试创建一个JavaScript倒数计时器,以显示小时和分钟,每天倒计时至中午。 到达中午时,我希望计时器重置并再次开始倒计时至中午(显然要倒数至第二天)。
我有下面的代码,但是我只是无法使其正常工作,中午后代码可以正常工作,但是一旦达到午夜,计数就不正确了。
这是我的代码:
function ShowTimes() {
var now = new Date();
var hrtime = now.getHours()
var hrs = 23 - hrtime + 12;
var mins = 59-now.getMinutes();
var secs = 59-now.getSeconds();
var str = '';
str += hrs+' hours '+mins+' minutes';
document.getElementById('countdown').innerHTML = str;
}
var _cntDown;
function StopTimes() {
clearInterval(_cntDown);
}
任何帮助深表感谢! 提前致谢。
更改小时数计算逻辑,如下所示:
if(hrtime>12)
hrtime=23- hrtime+ 12;
else
hrtime= 12-hrtime;
您是否居住在春季/秋季将时钟向前/向后移动的地方?
如果是这样,那么一年中您将有两天的时间和分钟逻辑将失败。
即使时钟改变,这也是一种可行的方法:
var now = new Date();
var midday = new Date(now.getFullYear(), now.getMonth(), now.getDate() + (now.getHours() >= 12 ? 1 : 0), 12);
var millisToMidday = midday.getTime() - now.getTime();
var hours = Math.floor((millisToMidday / (60 * 60 * 1000)))
var minutes = Math.floor((millisToMidday / (60 * 1000))) % 60;
var seconds = Math.floor((millisToMidday / (1000))) % 60;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.