javascript - 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
解决方案
检查浏览器对let
. 我强烈建议使用var
而不是let
参考网址:https ://caniuse.com/let
推荐阅读
- javascript - javascript反应本机博览会计时器
- node.js - 为什么我的节点邮件程序代码没有执行?
- sql-server - SQL Server:CTE WHILE LOOP 将相同的值分配给变量
- javascript - 无法在 Fabric Js 中按行连接端点
- python - 提供 blob 类型以从 PySpark 读取 Azure 附加 blob
- ruby - 如何从以前的方法中获取随机数据?
- javascript - Google fit 聚合 rest api 调用问题解析错误 javascript
- php - 在多个 foreach 循环表中添加 if else 语句
- c++ - intel-pin:如何将命令行参数传递给二进制文件
- casting - UE4 Blueprint Cast 无故失败