<p id="p"></p> var d = (new Date(2010,11,31) - new Date())/1000, p = document.getElementById('p'); var day = Math.floor(d/86400), h = Math.floor((d-day*86400)/3600), m = Math.floor((d-day*86400-h*3600)/60), s = Math.floor(d-day*86400-h*3600-m*60); function ale(){ if(--s < 0){ if(--m < 0){ if( --h < 0){ if(--day < 0){ clearInterval(ale); alert('Time over'); } h = 23; } m = 59; } s = 59; } p.innerHTML = day+' '+h+' '+m+' '+s; } setInterval(ale, 1000); 简化了一下,具体表现在最开始先获取到时间,然后直接用减法替代乘除运算,减少cpu开销。 不过这有一个局限性,只能到天,不过已经够用了。