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]]. 其中[]内的内容可省略'); 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>