• 时间倒计时插件


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>时间倒计时</title>
    <script src="js/jquery-1.7.1.js"></script>
    <script src="js/time-js.js"></script>
    </head>

    <body>
    <div id="showTime">
        
        </div>
    </body>
    <script>

       $("#showTime").countdown({
                    Sdate: "2013-03-15 15:41:10",
                    Edate: "2013-03-18 16:00:00"
                });

    </script>
    </html>
    时间插件
     ; (function ($) {
        $.fn.countdown = function (options) {
            //判断是否有事件存在
            if (this.length == 0) {
                return false;
            }
            return this.each(function () {
                var Default = {
                    Sdate: null,//开始时间 
                    Edate: null,//结束日期
                    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);
                        //在没有设置时间的时候将时间内容定为0时0分0秒
                        //数字是一位数
                        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));
                        //匹配小时分钟和秒,格式为xx:xx:xx
                        _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);
  • 相关阅读:
    思源:秒级体验百亿级数据量监控钻取
    禧云Redis跨机房双向同步实践
    谈谈数据中台技术体系
    RCA:收单设备调用云端接口频繁超时排查总结
    技术上的“深淘滩,低作堰”
    企业私有源代码上传github致入侵之大疆案判决了
    那些年我们一起犯过的错
    异地双活的四个误区
    没有预见性你凭什么晋升
    中国IT史上两大严重事故对我们的警醒及预防措施
  • 原文地址:https://www.cnblogs.com/xiaoleidiv/p/3138808.html
Copyright © 2020-2023  润新知