1. 程式人生 > >JS 倒計時功能 堆疊溢位問題

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的堆疊溢位。但是目前還沒有找到解決這個問題的辦法。