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)


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

DEMO下载
posted @ 2012-05-30 09:08  o0Luffy0o  阅读(4057)  评论(2编辑  收藏  举报