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的堆栈溢出。但是目前还没有找到解决这个问题的办法。

猜你喜欢

转载自blog.csdn.net/qq_20112609/article/details/65440590