求修改一段js实现页面多个倒计时

以下是一段jquery实现的倒计时,同一页面可以有多个倒计时;
希望修改成,如果倒计时到期了,自动重新开始倒计时,时间间隔可以随机,比如1-5天随机。

======================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>倒计时</title>

<script type="text/javascript" src="123/skin/js/jquery-1.7.2.js"></script>
<script>
$(function(){
updateEndTime();
});
//倒计时函数
function updateEndTime()
{
var date = new Date();
var time = date.getTime(); //当前时间距1970年1月1日之间的毫秒数

$(".settime").each(function(i){

var endDate =this.getAttribute("endTime"); //结束时间字符串
//转换为时间日期类型
var endDate1 = eval('new Date(' + endDate.replace(/\d+(?=-[^-]+$)/, function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')');

var endTime = endDate1.getTime(); //结束时间毫秒数

var lag = (endTime - time) / 1000; //当前时间和结束时间之间的秒数
if(lag > 0)
{
var second = Math.floor(lag % 60);
var minite = Math.floor((lag / 60) % 60);
var hour = Math.floor((lag / 3600) % 24);
var day = Math.floor((lag / 3600) / 24);
$(this).html(day+"天"+hour+"小时"+minite+"分"+second+"秒");
}
else
$(this).html("团购已经结束啦!");
});
setTimeout("updateEndTime()",1000);
}
</script>
</head>

<body>
<div class="settime" endTime="2014-6-12 12:1:1"></div>
<div class="settime" endTime="2014-4-10 15:23:12"></div></body>
</html>

自动重新开始倒计时,时间间隔可以随机

这里的时间间隔是什么?追问



他默认的,是需要设定到期时间,希望达到的效果是,我初始设置一个到期时间,如果到期了。程序自动取当前日期时间,自动把endtime随机加24-72小时,然后显示倒计时。
或者直接不需要设置到期时间,程序自动取当前日期随机加n小时开始倒计时。

追答<script>
$(function(){
updateEndTime();
});
function updateEndTime()
{
 var date = new Date();
 var time = date.getTime();
 
 $(".settime").each(function(i){
 
 var endTime =this.getAttribute("endTime"); 
 if(endTime == ""){
newendTime = time + parseInt((Math.random()*(72-24)+24)*1000*60*60*24);
this.setAttribute("endTime",newendTime);
 }
 var lag = (endTime - time) / 1000; 
  if(lag > 0)
  {
   var second = Math.floor(lag % 60);     
   var minite = Math.floor((lag / 60) % 60);
   var hour = Math.floor((lag / 3600) % 24);
   var day = Math.floor((lag / 3600) / 24);
   $(this).html(day+"天"+hour+"小时"+minite+"分"+second+"秒");
  }
  else{
newendTime = time + parseInt((Math.random()*(72-24)+24)*1000*60*60*24);
this.setAttribute("endTime",newendTime);
   }
 });
 setTimeout("updateEndTime()",1000);
}
</script>

<body>
<div class="settime" endTime=""></div>
<div class="settime" endTime=""></div>
</body>

这样好像能行了,

追问

随机的天数好像有点多哦,好几十天呢。
关键是刷新后倒计时就变了。类似团购那种的倒计时刷新是不能变的。

随机的天数好像有点多哦,好几十天呢。
关键是刷新后倒计时就变了。类似团购那种的倒计时刷新是不能变的。

追答

72-24那就就是随机的天数~改成5-1即可。
作为脚本语言,本身并不能保存变量的值。也许可以通过写文件的方式保存下随机的天数。

追问

谢谢啊,我把endtime放数据库里,页面上用php调用;如果到期了,我用php把数据库的endtime自动加上几天这样应该可以对吧?

追答

对的~~

温馨提示:答案为网友推荐,仅供参考
相似回答