基于jQuery的倒计时插件代码


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);
Javascript 相关文章推荐
js资料toString 方法
Mar 13 Javascript
很多人都是用下面的js刷新站IP和PV
Sep 05 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
Jan 16 Javascript
JavaScript中的DSL元编程介绍
Mar 15 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 Javascript
jquery获取文档高度和窗口高度汇总
Jan 25 Javascript
BootStrap扔进Django里的方法详解
May 13 Javascript
基于bootstrop常用类总结(推荐)
Sep 11 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
Nov 01 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
Nov 12 Javascript
JS 创建对象的模式实例小结
Apr 28 Javascript
如何使用gpu.js改善JavaScript的性能
Dec 01 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
May 06 #Javascript
jQuery 常见操作实现方式和常用函数方法总结
May 06 #Javascript
jQuery1.6 正式版发布并提供下载
May 05 #Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 #Javascript
jQuery bind事件使用详解
May 05 #Javascript
javascript 拖动表格行实现代码
May 05 #Javascript
小试JQuery的AutoComplete插件
May 04 #Javascript
You might like
提问的智慧(2)
2006/10/09 PHP
十天学会php之第六天
2006/10/09 PHP
PHP Pear 安装及使用
2009/03/19 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
原始的js代码和jquery对比体会
2013/09/10 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
Bootstrap3 图片(响应式图片&amp;图片形状)
2017/01/04 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
python中的decorator的作用详解
2018/07/26 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python用TensorFlow做图像识别的实现
2020/04/21 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
个人找工作自荐信格式
2013/09/21 职场文书
最热门的自我评价
2013/12/30 职场文书
实习生求职自荐信
2014/02/07 职场文书
市场总经理岗位职责
2014/04/11 职场文书
《画家乡》教学反思
2014/04/22 职场文书
2015年除四害工作总结
2015/07/23 职场文书
安全教育日主题班会
2015/08/13 职场文书
2016年春节问候语
2015/11/11 职场文书