A5下载文章资讯

分类分类

jquery实现的判断倒计时是否结束代码

2016-02-06 19:00作者:fang

本章节介绍一段代码实例,此代码能够判断当前日期是否已经倒计时结束,此代码中并没有倒计时效果,只是判断是否倒计时完成,比如购物网站优惠期限等,虽然实际应用中,很少会出现类似的代码,不过希望能够给浏览者带来一定的启示作用。

代码如下:

function done(){

var str=$('#end').text();

var out=str.match(/d+/g);

console.log(out);

var h=parseInt(out[0]),m=parseInt(out[1]),s=parseInt(out[2]);

console.log(h+'#'+m+'#'+s);

var calc=h*3600+m*60+s;

console.log(calc);

if(calc==0){

//code

}

else{

console.log('等待..');

}

var t=setTimeout('done()',1000);

}

done();

上面只是代码片段,不能够演示,下面介绍一下它的实现过程。

一.代码注释:

1.function done(){},此函数实现判断倒计时结束效果。

2.var str=$('#end').text(),获取指定元素中的文本内容,本代码中应该倒计时当前时间.

3.var out=str.match(/d+/g),获取时间日期中数字的数组。

4.var h=parseInt(out[0]),m=parseInt(out[1]),s=parseInt(out[2]),分别获取小时、分钟和秒。

5.var calc=h*3600+m*60+s,转换成秒。

6.if(calc==0){//code},判断倒计时是否结束,然后指定相应的操作。

7.var t=setTimeout('done()',1000),每隔一秒执行一次判断函数。

8.done(),执行此函数。

jquery实现倒计时代码如下所示:

$(function(){

var tYear = ""; //输入的年份

var tMonth = ""; //输入的月份

var tDate = ""; //输入的日期

var iRemain = ""; //开始和结束之间相差的毫秒数

var sDate = ""; //倒计的天数

var sHour = ""; //倒计时的小时

var sMin = ""; //倒计时的分钟

var sSec = ""; //倒计时的秒数

var sMsec = ""; //毫秒数

//通用工具函数,在个位数上加零,根据传的N的参数,来设前面加几个零

function setDig(num,n){

var str = ""+num;

while(str.length<n){

str="0"+str

}

return str;

}

//获得相差的天,小时,分钟,秒

function getdate(){

//创建开始时间和结束时间的日期对象

var oStartDate = new Date();

var oEndDate = new Date();

//获取文本框的值

tYear = $("#tyear").val();

tMonth = $("#tmonth").val();

tDate = $("#tdate").val();

//设置结束时间

oEndDate.setFullYear(parseInt(tYear));

oEndDate.setMonth(parseInt(tMonth)-1);

oEndDate.setDate(parseInt(tDate));

oEndDate.setHours(0);

oEndDate.setMinutes(0);

oEndDate.setSeconds(0);

//求出开始和结束时间的秒数(除以1000)

iRemain = (oEndDate.getTime() - oStartDate.getTime())/1000;

//总的秒数除以一天的秒数,再取出整数部分,就得出有多少天。

sDate = setDig(parseInt(iRemain/(60*60*24)),3);

//总的秒数除以一天的秒数,然后取其中的余数,就是把整数天扣除之后,剩下的总秒数。

iRemain %= 60*60*24;

//剩下的总秒数除以一个小时的秒数,再取整数部分,就是有多少小时。

sHour = setDig(parseInt(iRemain/(60*60)),2)

//剩下的总秒数除以一个小时的秒数,再取其余数,这个余数,就是扣除小时这后,剩下的总秒数。

iRemain %= 60*60;

//剩下的总秒数除以一分钟的秒数,再取其整数部分,就是有多少分钟。

sMin = setDig(parseInt(iRemain/60),2)

//剩下的总秒数除以一分钟的秒数,再取其余数,这个余数,就是扣除分钟之后,剩下的总秒数。

iRemain%=60;

//剩下的秒数

sSec = setDig(iRemain,2);

//毫秒数

sMsec = sSec*100;

}

//更改显示的时间

function updateShow(){

$(".showdate span").text(tYear+"-"+tMonth+"-"+tDate);

$(".count span").each(function(index, element) {

if(index==0){

$(this).text(sDate);

}else if(index==1){

$(this).text(sHour);

}else if(index == 2){

$(this).text(sMin);

}else if(index == 3){

$(this).text(sSec);

}else if(index == 4){

$(this).text(sMsec);

}

});

}

//每一秒执行一次时间更新

function autoTime(){

getdate();

//如果小于零,清除调用自己,并且返回

if(iRemain<0){

clearTimeout(setT);

return;

}

updateShow();

var setT = setTimeout(autoTime,1000);

}

//点击按钮开始计时

$("button").click(function(){

autoTime();

})

})

记录需要注意的地方:

1.取模运算:

  iRemain %= 60*60*24;

就是返回余数,在这个实例中的余数,就是把整数拿走后,剩下的秒数。

2.工具函数 setDig(num,n)  

可以根据传入的参数,自动在传入的数字前加零

以上就是本文章的内容,希望对大家有所帮助

展开全部

相关

说两句网友评论
    我要跟贴
    取消