var Global={};
Global.namespace = function (str) {
var arr=str.split(‘.‘),
o=Global;
for(var i= 0,len=arr.length;i<len;i++){
o[arr[i]]=o[arr[i]] || {};
o=o[arr[i]];
}
};
/*
* CountDown module
* usage: new Global.Countdown() and use init() ,send params to init,like
* {
* day:10,
* hour:10,
* minute:10,
* second:10
* }
* Author :wz
* 2015-12-20
*
* */
Global.namespace(‘Countdown‘);
(function(){
Global.Countdown.end=0;
var day=document.getElementById(‘day‘);
var hour=document.getElementById(‘hour‘);
var minute=document.getElementById(‘minute‘);
var second=document.getElementById(‘second‘);
Global.Countdown=function(obj){
Global.Countdown.end=new Date().getTime()+(obj.day*24*60*60+obj.hour*60*60+obj.minute*60+obj.second)*1000;
};
Global.Countdown.prototype = {
init:function(){
var now=new Date().getTime();
if(Global.Countdown.end-now > 0){
setTimeout(Global.Countdown.prototype.init,1000);
var obj= Global.Countdown.prototype.timeformat(Global.Countdown.end-now);
day.innerHTML=obj.day;
hour.innerHTML=obj.hour;
minute.innerHTML=obj.minute;
second.innerHTML=obj.second;
}else{
second.innerHTML=‘00‘;
alert(‘time out‘)
}
},
timeformat:function(t){
var days = Math.floor(t/(1000*60*60*24));
var hour=this.check(Math.floor((t%(1000*60*60*24))/(1000*60*60)));
var minute=this.check(Math.floor((t%(1000*60*60))/(1000*60)));
var second=this.check(Math.round((t%(1000*60))/1000));
return {
‘day‘:days,
‘hour‘:hour,
‘minute‘:minute,
‘second‘:second
}
},
check:function(str){
if(str<10) return ‘0‘+str;
return str;
}
};
}());
new Global.Countdown({
‘day‘:0,
‘hour‘:0,
‘minute‘:0,
‘second‘:5
}).init();
原文:http://www.cnblogs.com/wz0107/p/5065158.html