基于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) 可以根据传入的参数,自动在传入的数字前加零