首页 > 解决方案 > Safari浏览器的javascript时间计数器问题

问题描述

我的网页中有一个计时器,其中包含以下 JavaScript 代码:

function setTimeCounters() {
    $(".time-counter").each(function (index, elem) {

        let exp = new Date($(this).attr('data-time'));

        var x = setInterval(function() {

            let now = (new Date()).getTime();
            let ex = (new Date(exp)).getTime();

            let distance = ex - now;


            let days = Math.floor(distance / (1000 * 60 * 60 * 24));
            let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
            let seconds = Math.floor((distance % (1000 * 60)) / 1000);

            $(elem).find(".time").html(`${showNumber(days)}:${showNumber(hours)}:${showNumber(minutes)}:${showNumber(seconds)}`);

            if ((hours+minutes+seconds) <= 0) {
                clearInterval(x);
                $(elem).html("timeout!");
            }
        }, 1000);

    });
}

function showNumber (num) {return ("0" + num).slice(-2);}

setTimeCounters();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="time-counter"
  data-time="2020-09-25 05:20:06">
  <span class="time"></span>
  <span><i class="fa fa-clock"></i></span>
</div>

我的问题是 iphone ios 上的 safari 浏览器,也许是 mac os(在 chrome 中工作正常,...)显示时间如下:aN:aN:aN:aN:aN

标签: javascriptjquerysafaricounter

解决方案


检查浏览器对let. 我强烈建议使用var而不是let 参考网址:https ://caniuse.com/let


推荐阅读