六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 88|回复: 0

js 倒计时

[复制链接]

升级  38.67%

30

主题

30

主题

30

主题

秀才

Rank: 2

积分
108
 楼主| 发表于 2013-2-7 18:37:24 | 显示全部楼层 |阅读模式
倒计时一:
<script language="javascript" type="text/javascript">
var interval = 1000;
function ShowCountDown(year,month,day,hour1,minute1,divname)
{
var now = new Date();
var endDate = new Date(year, month-1, day,hour1,minute1);
var leftTime=endDate.getTime()-now.getTime();
var leftsecond = parseInt(leftTime/1000);
//var day1=parseInt(leftsecond/(24*60*60*6));
var day1=Math.floor(leftsecond/(60*60*24));
var hour=Math.floor((leftsecond-day1*24*60*60)/3600);
var minute=Math.floor((leftsecond-day1*24*60*60-hour*3600)/60);
var second=Math.floor(leftsecond-day1*24*60*60-hour*3600-minute*60);

var cc = document.getElementById(divname);
cc.innerHTML = "距离"+year+"年"+month+"月"+day+"日还有:"+day1+"天"+hour+"小时"+minute+"分"+second;
}
window.setInterval(function(){ShowCountDown(2010,1,12,15,0,'divdown1');}, interval);

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>倒计时</title>
</head>
<body><div id="divdown1"></div></body>
</html>
缺陷,js在客户端运行,var now = new Date();获取的是客户端时间,所以如果客户端时间不准确,将造成误差!
倒计时二:
<SCRIPT LANGUAGE="JavaScript">
<!--
var maxtime = 4*60*60 //一个小时,按秒计算,自己调整!
function CountDown(){
if(maxtime>=0){
  var _H=Math.floor(maxtime/3600);
  var _M=Math.floor((maxtime-_H*3600)/60);
  var _S=(maxtime-_H*3600)%60;
  document.getElementById("divdown1Id").innerHTML="剩余<strong>"+ _H +"</strong>小时<strong>"+ _M +"</strong>分<strong>"+ _S +"</strong>秒";
  if(maxtime == 5*60) alert('注意,还有5分钟!');
  --maxtime;
}
else{
  clearInterval(timer);
  document.getElementById("divdown1Id").innerHTML="时间到,结束!";
}
}
timer = window.setInterval("CountDown()",1000);
//-->
</SCRIPT>
<div id="divdown1Id" style="color:red" mce_style="color:red"></div>
该倒计时不依赖客户端js获取当前日期,相对倒计时比较精确,只要用ajax从服务器端获取倒计剩余时间,再respose到客户端进行倒计,将较好的解决了时间不精确问题。
以上代码直接copy到html内即可运行
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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