JS 倒计时功能 堆栈溢出问题

今天写前端一个倒计时功能,我参考了网上的一段代码:
function countDown(surplusTime,fromTime) {
var days = parseInt(surplusTime / 1000 / 60 / 60 / 24 , 10); //计算剩余的天数
var hours = parseInt(surplusTime / 1000 / 60 / 60 % 24 , 10); //计算剩余的小时
var minutes = parseInt(surplusTime / 1000 / 60 % 60, 10);//计算剩余的分钟
var seconds = parseInt(surplusTime / 1000 % 60, 10);//计算剩余的秒数
//补全数字
days = checkTime(days);
hours = checkTime(hours);
minutes = checkTime(minutes);
seconds = checkTime(seconds);
//设置显示值
$("#day").text(days);
$("#hour").text(hours);
$("#minute").text(minutes);
$("#second").text(seconds);
var st = new Date(fromTime) - new Date();//报错语句
setInterval(countDown(st,fromTime),1000);
}

function checkTime(i){ //将0-9的数字前面加上0,例1变为01
if(i<10)
{
i = "0" + i;
}
return i;
}
在倒数第二行:
var st = new Date(fromTime) - new Date();
FireFox报: too much recursion;
Edge报:SCRIPT257: 由于出现错误 80020101 而导致此项操作无法完成。SCRIPT2343: 堆栈溢出,位置: 第 1 行。

我感觉可能是因为new的对象太多了,导致运行js的堆栈溢出。但是目前还没有找到解决这个问题的办法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值