• jQuery倒计时插件


    jQuery倒计时插件,主要用来限时购买

    1 /*
    2 * 倒计时插件,主要用来限时购买
    3 * By wayshan 版本1.0
    4 * 使用方法:
    5 * $(function(){
    6 * $("#ElementId").countdown({
    7 * Edate:"2012-12-21 15:14:23"
    8 * });
    9 * })
    10
    11  */
    12 ;(function($){
    13 $.fn.countdown = function(options){
    14 if (this.length == 0){
    15 return false;
    16 }
    17 return this.each(function(){
    18 var Default = {
    19 Sdate:null,//开始时间(格式为“2010-10-10 10:10:10”)可以设置为服务端的时间
    20   Edate:null,//结束日期(格式为“2010-10-10 10:10:10”)
    21 callback:function(){
    22 return false;
    23 }
    24 },
    25 _H_Text='小时',
    26 _M_Text='',
    27 _S_Text='',
    28 _lT = null,
    29 _cT = new Date(),
    30 _eT = null,
    31 _elT = null,
    32 ctime = null,
    33 etime = null,
    34 DomId = null,
    35 _timeout = null,
    36 _gt = function(){
    37 if (_lT == null) {
    38 _elT = (etime - ctime);
    39 if (_elT < 0){
    40 $('#'+DomId).html("<strong>0</strong>"+_H_Text+":<strong>0</strong>"+
    41 _M_Text+":<strong>0</strong>"+_S_Text);
    42 }
    43 var _xT =Math.ceil(_elT/(24*60*60*1000));
    44 _cT = parseInt(_cT.match(/\s(\d+)\D/)[1] * 3600)
    45 + parseInt(_cT.split(":")[1] * 60)+ parseInt(_cT.split(":")[2]);
    46 _eT = _xT * 24 * 3600 + parseInt(_eT.match(/\s(\d+)\D/)[1] * 3600)
    47 + parseInt(_eT.split(":")[1] * 60) + parseInt(_eT.split(":")[2]);
    48 _lT = _elT/1000;
    49 }
    50 if (_elT > 0) {
    51 if (_lT >= 0) {
    52 var _H = Math.floor(_lT / 3600);
    53 var _M = Math.floor((_lT - _H * 3600) / 60);
    54 var _S = (_lT - _H * 3600) % 60;
    55 $('#'+DomId).html("<strong>" + _H + "</strong>"+_H_Text+":<strong>"
    56 + _M + "</strong>"+_M_Text+":<strong>" + _S + "</strong>"+_S_Text);
    57 _lT--;
    58 } else {
    59 clearInterval(_timeout);
    60 if(s.callback && $.isFunction(s.callback)){
    61 s.callback.call(this);
    62 }
    63 }
    64 } else {
    65 clearInterval(_timeout);
    66 if(s.callback && $.isFunction(s.callback)){
    67 s.callback.call(this);
    68 }
    69 }
    70 },
    71 strDateTime = function(str){
    72 //判断日期时间的输入是否正确,类型必须形如为:2011-01-01 01:01:01
    73 var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
    74 var r = str.match(reg);
    75 if(r==null)return false;
    76 var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
    77 return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]
    78 &&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
    79 }
    80 var s = $.extend({}, Default, options || {});
    81 DomId = this.id;
    82 if (DomId == 'null'){
    83 return;
    84 }
    85 _eT = s.Edate;
    86 if (!strDateTime(_eT)){
    87 alert('结束日期格式不正确');
    88 return false;
    89 }
    90 if (s.Sdate != null){
    91 _cT = s.Sdate;
    92 }
    93 _cT = _cT.toString();
    94 cdate = _cT.replace(/-/g, '/');
    95 _eT = _eT.toString();
    96 edate = _eT.replace(/-/g, '/');
    97 ctime = new Date(cdate);
    98 etime = new Date(edate);
    99 _timeout = setInterval(_gt, 1000)
    100 });
    101 }
    102 })(jQuery);
  • 相关阅读:
    [BZOJ4199][NOI2015]品酒大会
    [BZOJ4198][Noi2015]荷马史诗
    [BZOJ4197][Noi2015]寿司晚宴
    [BZOJ4196][NOI2015]软件包管理器
    2016-11-15NOIP模拟赛
    2016.6.30模拟赛
    BZOJ3672: [Noi2014]购票
    UOJ#191. 【集训队互测2016】Unknown
    第四届CCF软件能力认证(CSP2015) 第五题(最小花费)题解
    bzoj3926: [Zjoi2015]诸神眷顾的幻想乡 对[广义后缀自动机]的一些理解
  • 原文地址:https://www.cnblogs.com/wayshan/p/2039421.html
Copyright © 2020-2023  润新知