jQuery倒计时组件,jquery.downCount.js

//html

<div class="countdown">  

<span class="days">00</span>

:
<span class="minutes">00</span>:
<span class="seconds">00</span>


</div>
<script src="js/jquery.downCount.js"></script>
<script type="text/javascript">
// 倒计时
            openCountdown: function() {
                var that = this;
                var timestamp = Date.parse(new Date())/1000;//js获取当前时间转换成时间戳
                var time = timestamp +0+ that.allow_time;//that.allow_time为计时时间戳
                var newtime = that.formatDateTime(time*1000);//通过方法把时间戳转换为所需格式:'月/日/年 时:分:秒'
                $('.countdown').downCount({
                    date: newtime, //'12/27/2025 00:00:00'
                    offset:8//时区东8区
                }, function() {
                    alert('倒计时结束!');
                });

            },
            // 将时间戳转换为指定格式的时间
            formatDateTime: function(inputTime) {
                var date = new Date(inputTime);
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                m = m < 10 ? ('0' + m) : m;
                var d = date.getDate();
                d = d < 10 ? ('0' + d) : d;
                var h = date.getHours();
                h = h < 10 ? ('0' + h) : h;
                var minute = date.getMinutes();
                var second = date.getSeconds();
                minute = minute < 10 ? ('0' + minute) : minute;
                second = second < 10 ? ('0' + second) : second;
                // console.log(m + '/' + d + '/' + y + ' ' + h + ':' + minute + ':' + second)
                return m + '/' + d + '/' + y + ' ' + h + ':' + minute + ':' + second;//所需要的格式可自由拼接
            },
</script>
//jquery.downCount.js

(function($){$.fn.downCount=function(options,callback){var settings=$.extend({date:null,offset:null},options);if(!settings.date){$.error('Date is not defined.');}
if(!Date.parse(settings.date)){$.error('Incorrect date format, it should look like this, 12/24/2012 12:00:00.');}
var container=this;var currentDate=function(){var date=new Date();var utc=date.getTime()+(date.getTimezoneOffset()*60000);var new_date=new Date(utc+(3600000*settings.offset))
return new_date;};function countdown(){var target_date=new Date(settings.date),current_date=currentDate();var difference=target_date-current_date;if(difference<0){clearInterval(interval);if(callback&&typeof callback==='function')callback();return;}
var _second=1000,_minute=_second*60,_hour=_minute*60,_day=_hour*24;var days=Math.floor(difference/_day),hours=Math.floor((difference%_day)/_hour),minutes=Math.floor((difference%_hour)/_minute),seconds=Math.floor((difference%_minute)/_second);days=(String(days).length>=2)?days:'0'+days;hours=(String(hours).length>=2)?hours:'0'+hours;minutes=(String(minutes).length>=2)?minutes:'0'+minutes;seconds=(String(seconds).length>=2)?seconds:'0'+seconds;var ref_days=(days===1)?'day':'days',ref_hours=(hours===1)?'hour':'hours',ref_minutes=(minutes===1)?'minute':'minutes',ref_seconds=(seconds===1)?'second':'seconds';container.find('.days').text(days);container.find('.hours').text(hours);container.find('.minutes').text(minutes);container.find('.seconds').text(seconds);container.find('.days_ref').text(ref_days);container.find('.hours_ref').text(ref_hours);container.find('.minutes_ref').text(ref_minutes);container.find('.seconds_ref').text(ref_seconds);};var interval=setInterval(countdown,1000);};})(jQuery);