倒计时如下显示时间&最小值& SEC。例子48小时12MIN 02 SECONDS。关于如何重构和改善此Javascript倒计时的任何想法? [长码]
我试图修改它,以便它显示2Days 0Hours 12Min 02Seconds,但是当我这样做代码中断。
另一个问题我有是,一旦倒计时已近尾声,它显示为00 00 00
附:代码可能看起来很长,但其中大部分都是可变的,我将它们包括在内以防止混淆。
好玩:
function countdown(yr,m,d,hr,min,sec,id_d,url,gettimezone){
// Here I skipped some Variable assigments. That help define futurestring andd todaystring.
//Main Variable assignments START
var dd=futurestring-todaystring;
// futurstring - todaystring are self-explanatory, the future date - todays date.
var dday=Math.floor(dd/(60*60*1000*24)*1);
var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
dday = (dday*24)+dhour; //converted days to hour
var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
//Main Variable assignments END
//Here is where it really starts.
if(dday<=0&&dmin<=0&&dsec<=0) //I believe this is causing issue 2, this should be displaying the 00s if the countdown is over.
{
document.getElementById(id_de+'tot_hrs2').innerHTML='00';
document.getElementById(id_de+'tot_mins2').innerHTML='00';
document.getElementById(id_d+'tot_secs2').innerHTML='00';
setTimeout("redirect_url_fn('"+url+"')",2000);
}
else
{
if(dday<10)
{
dday='0'+dday;
}
if(dmin<10)
{
dmin='0'+dmin;
}
if(dsec<10)
{
dsec='0'+dsec;
}
//Tried replacing dday with dhour & adding dday while
//Removing dday = (dday*24)+dhour; //converted days to hour
//But I don't get the correct countdown time in D-H-M-S format
document.getElementById(id_de+'tot_hrs2').innerHTML=dday;
document.getElementById(id_de+'tot_mins2').innerHTML=dmin;
document.getElementById(id_d+'tot_secs2').innerHTML=dsec;
setTimeout("countdown('"+year+"','"+month+"','"+day+"','"+hour+"','"+minute+"','"+second+"','"+id_de+"','"+url+"','"+tz+"')",1000);
//setTimeout("cou("+id_d+")",1000);
//setTimeout("redirect_url_fn('"+url+"')",2000);
if(dday<=0) // dday zero allowed here
{
document.getElementById(id_de+'tot_hrs2').innerHTML='';
document.getElementById('hrs').innerHTML='';
}
}
}
这只是一个大的代码转储无意见或测试,也不有一个活生生的例子。也许你应该添加一些这些 – Raynos
请把你的工作示例放在jsfiddle.net – hafichuk
如果你正在寻找*修复*你的代码来纠正你提到的两个问题的帮助,你应该改为[SO]。 –