基于jQuery的倒计时插件代码

剩余时间: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);

(0)

相关推荐

  • 实例讲解多个js毫秒倒计时同时进行效果

    本文实例讲解js毫秒倒计时同时进行效果的代码,分享给大家供大家参考,具体内容如下 效果图: 实现功能:调用一个函数,传入html元素的id,和一个截止时间(unix时间戳),在该html元素中打印出到当前到截止时间为止的倒计时,精确到毫秒: 效果图如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" conte

  • jquery 倒计时效果实现秒杀思路

    复制代码 代码如下: <script type="text/javascript"> $(function(){ countDown("2015/9/8 11:11:59","#colockbox1"); }); function countDown(time,id){ var day_elem = $(id).find('.day'); var hour_elem = $(id).find('.hour'); var minute_

  • JS基于面向对象实现的多个倒计时器功能示例

    本文实例讲述了JS基于面向对象实现的多个倒计时器功能.分享给大家供大家参考,具体如下: 运行效果图如下: 实现代码如下: 代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &l

  • 整理8个很棒的 jQuery 倒计时插件和教程

    jQuery 倒计时插件和教程. jQuery Countdown spriteTimer php ajax/jquery countdown Add a Countdown Timer on Your Website jQuery Flipclock Fancy Countdown Cool jQuery Countdown Joomla jQuery Countdown

  • JQuery实现倒计时按钮具体方法

    复制代码 代码如下: <head>    <title>test count down button</title>    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.min.js" type="text/javascript"></script>    <script type="text/javascri

  • JQuery实现倒计时按钮的实现代码

    复制代码 代码如下: <head> <title>test count down button</title> <script src="http://demo.jb51.net/jslib/jquery/jquery-1.5.1.min.js" type="text/javascript"></script> <script type="text/javascript">

  • jQuery实现倒计时跳转的例子

    实现代码: 复制代码 代码如下: <html>   <head>   <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />    <title>跳转页面</title>      <script src="jquery.js"></script>    <script la

  • jquery简单倒计时实现方法

    本文实例讲述了jquery简单倒计时实现方法.分享给大家供大家参考,具体如下: var intDiff = parseInt(60); //倒计时总秒数量 function timer(intDiff) { window.setInterval(function () { var day = 0, hour = 0, minute = 0, second = 0; //时间默认值 if (intDiff > 0) { day = Math.floor(intDiff / (60 * 60 * 2

  • JS/jquery实现一个网页内同时调用多个倒计时的方法

    本文实例讲述了jquery/js实现一个网页内同时调用多个倒计时的方法.分享给大家供大家参考,具体如下: 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! var plugJs={ stamp:0, tid:1, stampnow:'<?php echo NOW_TIME;?>',//统一开始时间戳 intervalTime:function(){ if(plugJs.stamp > 0){ var day = Ma

  • 同一页面多个商品倒计时JS 基于面向对象的javascript

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title

随机推荐