当前位置: 首页 > 知识库问答 >
问题:

倒数计时器在Safari中不工作(Javascript已添加到Webflow)

邹嘉致
2023-03-14

我在Webflow中设计了一个倒计时,并添加了一些javascript代码作为功能。一切正常,但Safari似乎无法识别日期格式。当我在Safari(在macOS或iOS上)中打开网站而不是数字时,显示的是“an”。

我浏览了其他类似的问题但是没有找到解决方法,代码是:

<script>
  (function() {
    var deadline = '2021-04-25 20:00:00';
  
    function pad(num, size) {
        var s = "0" + num;
        return s.substr(s.length-size);
    }
  
    function getTimeRemaining(endtime) {
      var t = Date.parse(endtime) - Date.parse(new Date()),
          seconds = Math.floor((t / 1000) % 60),
          minutes = Math.floor((t / 1000 / 60) % 60),
          hours = Math.floor((t / (1000 * 60 * 60)) % 24),
          days = Math.floor(t / (1000 * 60 * 60 * 24));
  
      return {
        'total': t,
        'days': days,
        'hours': hours,
        'minutes': minutes,
        'seconds': seconds
      };
    }
  
    function clock(id, endtime) {
      var days = document.getElementById(id + '-days')
          hours = document.getElementById(id + '-hours'),
          minutes = document.getElementById(id + '-minutes'),
          seconds = document.getElementById(id + '-seconds');
  
      var timeinterval = setInterval(function() {
        var t = getTimeRemaining(endtime);
  
        if (t.total <= 0){
          clearInterval(timeinterval);
        } else {
    days.innerHTML = pad(t.days, 2);
    hours.innerHTML = pad(t.hours, 2);
    minutes.innerHTML = pad(t.minutes, 2);
    seconds.innerHTML = pad(t.seconds, 2);
    }
      }, 1000);
    }
  
    clock('js-clock', deadline);
  })();
</script>

我真的很感谢一些正确方向的指示:)

共有1个答案

濮阳景天
2023-03-14

向构造函数提供日期的数字组件比使用日期字符串产生跨浏览器更一致的结果。

var deadline = new Date(2021, 3, 25, 20, 0, 0, 0);
//...
function getTimeRemaining(endtime) {
      var t = endtime - new Date,
          seconds = Math.floor((t / 1000) % 60),
          minutes = Math.floor((t / 1000 / 60) % 60),
          hours = Math.floor((t / (1000 * 60 * 60)) % 24),
          days = Math.floor(t / (1000 * 60 * 60 * 24));

      return {
        'total': t,
        'days': days,
        'hours': hours,
        'minutes': minutes,
        'seconds': seconds
      };
}
 类似资料:
  • 问题内容: 只是想问问如何创建最简单的倒数计时器。 该网站上会有一句话: “注册将在05:00分钟后关闭!” 因此,我想做的是创建一个简单的js倒数计时器,该计时器从“ 05:00”到“ 00:00”,然后在结束时重置为“ 05:00”。 之前我一直在回答一些问题,但是对于我想做的事情,它们似乎都太过激烈了(日期对象等)。 问题答案: 我有两个演示,一个带演示,一个不带演示。两者都不使用日期函数,

  • 我有两个XML EditTexts。在一个EditText中,用户可以将一个数字作为分钟,在另一个EditText中,可以将一个数字作为秒。单击finish按钮后,seconds EditText应开始倒计时,并每秒更新其文本。 此外,我如何保持更新,直到它达到零分钟零秒?

  • 问题内容: 我已经在JavaScript中看到了许多倒数计时器,并希望在React中使用它。 我借用了我在网上找到的此功能: 然后我自己写了这段代码 当前onclick会将其在屏幕上的时间设置为: 但不会将其减少到,然后等等等 我想我需要使用其他参数再次调用该函数。我该怎么做呢? 编辑:我忘了说,我想要功能,这样我就可以使用秒到分钟和秒 问题答案: 您必须每秒剩余几秒钟(每次调用间隔)。这是一个例

  • 我试图制作一个在浏览器中工作的UTC午夜的JavaScript倒计时器(通常转换为本地时间)。 这是我现在在我的网站上使用的东西。

  • 我想通过绘制一条灰色、白色(与背景匹配)的路径,然后再绘制一条灰色的路径来创建闪烁效果。我想闪烁3次,显示灰色1秒,显示白色1秒,再次显示灰色1秒,以此类推。 当我为postDelayed()创建一个时,程序跳过run(),没有在定时集中执行它,也没有发生闪烁: 我如何使用计时器实现这样的闪烁功能,并将其闪烁3次? 谢谢!

  • 我试图使一个倒计时,显示总天数,小时,分钟和秒的剩余特定日期。 这就是我到目前为止所创造的。 我用过计时器,它用Console.WriteLine计数,但TextViews什么也不显示,也不更新...有人知道如何每秒钟更新TextViews吗?