【问题标题】:javascript time counter problem with safari browserSafari浏览器的javascript时间计数器问题
【发布时间】:2021-01-07 15:05:11
【问题描述】:

我的网页中有一个计时器,其 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

【问题讨论】:

  • 什么是showNumber函数?根据aN:aN:aN:aN:aN的结果,好像还有一些NaNs在路上..
  • 我编辑了您的 sn-p 以使其可运行,但它仍然需要您实现 showNumber。我现在添加了一个占位符。 @KBASE,请编辑。
  • @Wyck 对此感到抱歉,已编辑
  • 我加了时间,现在运行它,它会工作,iphone safari 有问题
  • 该日期格式是否合法/受支持? (我不这么认为)请参阅stackoverflow.com/a/4310986/1563833 我认为您需要使用 parseExact 才能使用该格式。

标签: javascript jquery safari counter


【解决方案1】:

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

【讨论】:

  • 问题已解决,请参阅我的问题上的 cmets,与 @Wyck 交谈
  • @KBASE 对你有好处。但在使用新的 javascript 功能时检查浏览器兼容性。也许您的用户使用旧版本的浏览器
  • 很遗憾,我不知道如何在不同版本的浏览器中测试我的 javascript(也包括 html 和 css),您能帮帮我吗?
猜你喜欢
  • 1970-01-01
  • 2012-10-28
  • 2016-06-25
  • 1970-01-01
  • 2021-12-31
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
相关资源
最近更新 更多