找回密码
 新建账号

[JS] JS倒计时,距离某一日期还有多少时间

[复制链接]
php 发表于 2012/10/1 22:32 | 显示全部楼层 |阅读模式
JS计算从现在到某个时刻还有多少时间,显示当前日期时间距离某年某月某日还有多少天多少小时多少分钟多少秒,如果给定时间比当前时间更早,则显示为距离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,年月日时分秒只要有一个是错误的,程序都将无法正常运行.

  1. <span id="show">Loading...</span>
  2. <script type="text/javascript">
  3. function count_down(o){
  4.         var www_qsyz_net=/^[\d]{4}-[\d]{1,2}-[\d]{1,2}( [\d]{1,2}:[\d]{1,2}(:[\d]{1,2})?)?$/ig,str='',conn,s;
  5.         if(!o.match(www_qsyz_net)){
  6.                 alert('参数格式为2012-01-01[ 01:01[:01]].\r其中[]内的内容可省略');
  7.                 return false;
  8.         }
  9.         var sec=(new Date(o.replace(/-/ig,'/')).getTime() - new Date().getTime())/1000;
  10.         if(sec > 0){
  11.                 conn='还有';
  12.         }else{
  13.                 conn='已过去';
  14.                 sec*=-1;
  15.         }
  16.         s={'天':sec/24/3600,'小时':sec/3600%24,'分':sec/60%60,'秒':sec%60};
  17.         for(i in s){
  18.                 if(Math.floor(s[i])>0 ) str += Math.floor(s[i]) + i;
  19.         }
  20.         if(Math.floor(sec)==0){ str='0秒'; }
  21.         document.getElementById('show').innerHTML = '距离<u>' + o + '</u>' + conn +'<u>' + str + '</u>';
  22.         setTimeout(function(){count_down(o)},1000);
  23. }
  24. count_down('2012-10-1 22:55:40');
  25. </script>
复制代码

手机版|轻松E站

GMT+8, 2024/11/21 23:49

快速回复 返回顶部 返回列表