消除setInterval倒计时误差

举报
王小贰 发表于 2021/02/03 15:08:07 2021/02/03
【摘要】 可以使用setTimeout递归自循环调用解决        countDown();        function addZero(i) {            return i < 10 ? "0" + i : i + "";        }        function countDown() {            var nowtime = new Date()     ...

可以使用setTimeout递归自循环调用解决


        countDown();
        function addZero(i) {
            return i < 10 ? "0" + i : i + "";
        }
        function countDown() {
            var nowtime = new Date()
            var endtime = new Date("2021/02/12,00:00:00");
            var lefttime = parseInt((endtime.getTime() - nowtime.getTime()) / 1000);
            var d = parseInt(lefttime / (24 * 60 * 60));
            var h = parseInt(lefttime / (60 * 60) % 24);
            var m = parseInt(lefttime / 60 % 60);
            var s = parseInt(lefttime % 60);
            d = addZero(d);
            h = addZero(h);
            m = addZero(m);
            s = addZero(s);
            document.querySelector(".count").innerText = `新年倒计时 ${d} 天 ${h} 时 ${m} 分 ${s} 秒 `;
            if (lefttime <= 0) {
                document.querySelector('.count').innerText = "新年快乐";
            }
            setTimeout(countDown, 1000);
        }

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。