Posted in Javascript onMay 07, 2011
剩余时间:1小时:40分:30秒
1 /* * 倒计时插件,主要用来限时购买 * By wayshan 版本1.0 * 使用方法: * $(function(){ * $("#ElementId").countdown({ * Edate:"2012-12-21 15:14:23" * }); * }) */ ;(function($){ $.fn.countdown = function(options){ if (this.length == 0){ return false; } return this.each(function(){ var Default = { Sdate:null,//开始时间(格式为“2010-10-10 10:10:10”)可以设置为服务端的时间 Edate:null,//结束日期(格式为“2010-10-10 10:10:10”) callback:function(){ return false; } }, _H_Text='小时', _M_Text='分', _S_Text='秒', _lT = null, _cT = new Date(), _eT = null, _elT = null, ctime = null, etime = null, DomId = null, _timeout = null, _gt = function(){ if (_lT == null) { _elT = (etime - ctime); if (_elT < 0){ $('#'+DomId).html("<strong>0</strong>"+_H_Text+":<strong>0</strong>"+ _M_Text+":<strong>0</strong>"+_S_Text); } var _xT =Math.ceil(_elT/(24*60*60*1000)); _cT = parseInt(_cT.match(/\s(\d+)\D/)[1] * 3600) + parseInt(_cT.split(":")[1] * 60)+ parseInt(_cT.split(":")[2]); _eT = _xT * 24 * 3600 + parseInt(_eT.match(/\s(\d+)\D/)[1] * 3600) + parseInt(_eT.split(":")[1] * 60) + parseInt(_eT.split(":")[2]); _lT = _elT/1000; } if (_elT > 0) { if (_lT >= 0) { var _H = Math.floor(_lT / 3600); var _M = Math.floor((_lT - _H * 3600) / 60); var _S = (_lT - _H * 3600) % 60; $('#'+DomId).html("<strong>" + _H + "</strong>"+_H_Text+":<strong>" + _M + "</strong>"+_M_Text+":<strong>" + _S + "</strong>"+_S_Text); _lT--; } else { clearInterval(_timeout); if(s.callback && $.isFunction(s.callback)){ s.callback.call(this); } } } else { clearInterval(_timeout); if(s.callback && $.isFunction(s.callback)){ s.callback.call(this); } } }, strDateTime = function(str){ //判断日期时间的输入是否正确,类型必须形如为:2011-01-01 01:01:01 var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4] &&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); } var s = $.extend({}, Default, options || {}); DomId = this.id; if (DomId == 'null'){ return; } _eT = s.Edate; if (!strDateTime(_eT)){ alert('结束日期格式不正确'); return false; } if (s.Sdate != null){ _cT = s.Sdate; } _cT = _cT.toString(); cdate = _cT.replace(/-/g, '/'); _eT = _eT.toString(); edate = _eT.replace(/-/g, '/'); ctime = new Date(cdate); etime = new Date(edate); _timeout = setInterval(_gt, 1000) }); } })(jQuery);
基于jQuery的倒计时插件代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@