基于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 相关文章推荐
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
Aug 16 Javascript
计算世界完全对称日的js代码,粗糙版
Nov 04 Javascript
表格奇偶行设置不同颜色的核心JS代码
Dec 24 Javascript
js 处理数组重复元素示例代码
Dec 27 Javascript
22点关于jquery性能优化的建议
May 28 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
Oct 13 Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 Javascript
Vue项目中添加锁屏功能实现思路
Jun 29 Javascript
vue forEach循环数组拿到自己想要的数据方法
Sep 21 Javascript
jQuery pager.js 插件动态分页功能实例分析
Aug 02 jQuery
vue组件暴露和.js文件暴露接口操作
Aug 11 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
Sep 16 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
Cannot modify header information错误解决方法
2008/10/08 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
js 处理URL实用技巧
2010/11/23 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
jquery表单验证需要做些什么
2015/11/17 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
node跨域请求方法小结
2017/08/25 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
Python中Class类用法实例分析
2015/11/12 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
python的launcher用法知识点总结
2020/08/07 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
技校学生个人职业生涯规划范文
2014/03/03 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书