JS計算從現在到某個時刻還有多少時間,顯示當前日期時間距離x年x月x日還有x天x小時x分鍾x秒,如果給定時間比當前時間更早,則顯示為距離2012-9-30已過去1天22小時26分30秒的格式,如果給定時間比當前時間晚則顯示為距離2012-10-3還有1天1小時32分20秒的格式.
函數調用方式舉例:
count_down('2012-10-2');//只給日期
count_down('2012-10-2 3:22');//給出日期和時分
count_down('2012-10-2 3:22:33');給出日期和時分秒
注意事項:不要刪除<span id="show">Loading...</span>
日期必須以4位年月開頭,嚴格按照上述例子書寫
形如2012-30-50 25:88:99,年月日時分秒只要有一個是錯誤的,程序都將無法正常運行.
<span id="show">Loading...</span> <script type="text/javascript"> function count_down(o){ var datatime=/^[\d]{4}-[\d]{1,2}-[\d]{1,2}( [\d]{1,2}:[\d]{1,2}(:[\d]{1,2})?)?$/ig,str='',conn,s; if(!o.match(datatime)){ alert('參數格式為2020-01-01[ 01:01[:01]].\r其中[]內的內容可省略'); return false; } var sec=(new Date(o.replace(/-/ig,'/')).getTime() - new Date().getTime())/1000; if(sec > 0){ conn='還有'; }else{ conn='已過去'; sec*=-1; } s={'天':sec/24/3600,'小時':sec/3600%24,'分':sec/60%60,'秒':sec%60}; for(i in s){ if(Math.floor(s[i])>0 ) str += Math.floor(s[i]) + i; } if(Math.floor(sec)==0){ str='0秒'; } document.getElementById('show').innerHTML = '距離<u>' + o + '</u>' + conn +'<u>' + str + '</u>'; setTimeout(function(){count_down(o)},1000); } count_down('2012-1-1 00:00:00'); </script>