繁体   English   中英

JavaScript重复倒数计时器至正午

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM