帮忙改下JS代码,如何在一个页面显示多个倒计时。。。

代码说明packetid是提取数据库中的项目ID具体该怎么改?一个页面有多个倒计时,怎么样才能全部显示?现在只显示一个。。。。代码如下<h1><strongid="Rem... 代码说明
packetid 是提取数据库中的项目ID 具体该怎么改?
一个页面有多个倒计时,怎么样才能全部显示?现在只显示一个。。。。

代码如下
<h1><strong id="RemainH$packetdata['packetid']">XX</strong>:<strong id="RemainM$packetdata['packetid']">XX</strong>:<strong id="RemainS$packetdata['packetid']">XX</strong>:<strong id="xxx$packetdata['packetid']">XX</strong></h1>

<script language="JavaScript">
<!-- //
var runtimes = 0;
var lefttime = "$today"-"$packetdata['starttimeform']";
function GetRTime(){
var nMS = lefttime*1000-runtimes*10;
var nH=Math.floor(nMS/(1000*60*60))%24;
var nM=Math.floor(nMS/(1000*60)) % 60;
var nS=Math.floor(nMS/1000) % 60;
var nms=Math.floor(nMS);
var nw= "已结束";
document.getElementById("RemainH$packetdata['packetid']").innerHTML=nH;
document.getElementById("RemainM$packetdata['packetid']").innerHTML=nM;
document.getElementById("RemainS$packetdata['packetid']").innerHTML=nS;

var c=new Date();
var q=c.getMilliseconds();
if(q<10)//因为毫秒为一位数时只占一个字符位置,会让毫秒二字变动位置
{
q="00"+c.getMilliseconds();
}
if(q>=10 && q<100)//因为毫秒为两位数时只占两个字符位置,会让毫秒二字变动位置
{
q="0"+c.getMilliseconds();
}
document.getElementById("xxx$packetdata['packetid']").innerHTML=q;
if(nMS<0)
{
document.getElementById("RemainH$packetdata['packetid']").innerHTML="";
document.getElementById("RemainM$packetdata['packetid']").innerHTML="已结束";
document.getElementById("RemainS$packetdata['packetid']").innerHTML="";
document.getElementById("xxx$packetdata['packetid']").innerHTML="";
}
runtimes++;
setTimeout("GetRTime()",10);
}
window.onload=GetRTime;
// -->
</script>
展开
 我来答
小傻

2015-11-14 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31135
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

一个页面显示多个倒计时,每个对应的项目需要显示倒计时的控件添加一个计时器,倒计时生成一个实例:var time = new Timer();如下代码:

/**
*startime 应该是毫秒数
*
*/

var Alarm = function (startime, endtime, countFunc, endFunc) {
        this.time = Math.floor((endtime - startime) / 1000); //时间
        this.countFunc = countFunc; //计时函数
        this.endFunc = endFunc; //结束函数
        this.flag = 't' + Date.parse(new Date()); //
    };
Alarm.prototype.start = function () {
    var self = this;

    self.flag = setInterval(function () {
        if (self.time < 0) {
            clearInterval(self.flag);
            self.endFunc();
            console.log('计时结束');
        } else {

            var minute, hour, day, second;
            day = Math.floor(self.time / 60 / 60 / 24) < 10 ? '0' + Math.floor(self.time / 60 / 60 / 24) : Math.floor(self.time / 60 / 60 / 24);
            hour = Math.floor(self.time / 60 / 60 % 24) < 10 ? '0' + Math.floor(self.time / 60 / 60 % 24) : Math.floor(self.time / 60 / 60 % 24);
            minute = Math.floor(self.time / 60 % 60) < 10 ? '0' + Math.floor(self.time / 60 % 60) : Math.floor(self.time / 60 % 60);
            second = Math.floor(self.time % 60) < 10 ? '0' + Math.floor(self.time % 60) : Math.floor(self.time % 60);
            //倒计时执行函数
            self.countFunc(second, minute, hour, day);
            self.time--;

        }
    }, 1000);
}
xhcms
2010-10-21 · 超过63用户采纳过TA的回答
知道答主
回答量:179
采纳率:0%
帮助的人:184万
展开全部
<h1><strong id="ReTime">示例一</strong></h1>
<h1><strong id="ReTime2">示例二</strong></h1>
<script language="JavaScript">
<!-- //
function ReTime(){
this.ID = document.getElementById(arguments[0]);
if(!this.ID)
{
alert("您要设置的 " + arguments[0] + " 初始化错误\r\n请检查标签ID设置是否正确!");
this.ID = -1;
return;
}
this.StartTime = new Date().valueOf();
this.Finish = "00:00:00:00";
this.TimerID;
if(typeof arguments[1] == "number" || typeof arguments[1] == "string")this.StartTime = arguments[1];
if(arguments.length >= 1)this.Start();
}
ReTime.prototype.Start = function()

{ var Obj = this;
var RunTime=0;
Obj.Begin = function(){RunTime++;
var nMS = Obj.StartTime*1000-RunTime*10;
var nH=Math.floor(nMS/(1000*60*60))%24;
var nM=Math.floor(nMS/(1000*60)) % 60;
var nS=Math.floor(nMS/1000) % 60;
var nms=Math.floor(nMS);
var c=new Date();
var nQ=c.getMilliseconds();
if(nQ<10)//因为毫秒为一位数时只占一个字符位置,会让毫秒二字变动位置
{
nQ="00"+c.getMilliseconds();
}
if(nQ>=10 && nQ<100)//因为毫秒为两位数时只占两个字符位置,会让毫秒二字变动位置
{
nQ="0"+c.getMilliseconds();
}
Obj.Finish = nH+":"+nM+":"+nS+":"+nQ;

if(nms<0){Obj.Finish = "已结束";window.clearInterval(Obj.TimerID);}
Obj.ID.innerHTML = Obj.Finish;
}
Obj.TimerID = window.setInterval(Obj.Begin,10);
}
new ReTime("ReTime","$today-$packetdata['starttimeform']");
new ReTime("ReTime2");
//代码使用说明
/*倒计时过程 ,调用方法---- new ReTime(ID,TODAY);
ID----页面中的HTML元素标签ID。
TODAY---你的那个什么变量。

*/
// -->
</script>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式