消除setInterval倒计时误差

举报
王小贰 发表于 2021/02/03 15:08:07 2021/02/03
7.6k+ 0 0
【摘要】 可以使用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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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