jQuery計時器外掛程式

來源:互聯網
上載者:User

標籤:style   blog   io   ar   color   os   sp   for   on   

/** * 定義一個jQuery計時外掛程式,實現記錄計時開始時間、結束時間,總共耗時的功能 * @param $ *  * @author Ivan [email protected] * @date 2014年11月25日 下午8:48:55  * @version V1.0 *  */(function($){        $.timer = {};        /**     * 擴充Date對象,為其增加一個格式化方法     * @param format 傳入日期格式,如yyyy-MM-dd hh:mm:ss     * @returns     */    Date.prototype.format = function(format) {        var o = {            "M+" : this.getMonth() + 1, // month            "d+" : this.getDate(), // day            "h+" : this.getHours(), // hour            "m+" : this.getMinutes(), // minute            "s+" : this.getSeconds(), // second            "q+" : Math.floor((this.getMonth() + 3) / 3), // quarter            "S" : this.getMilliseconds()        // millisecond        };        if (/(y+)/.test(format))            format = format.replace(RegExp.$1, (this.getFullYear() + "")                    .substr(4 - RegExp.$1.length));        for ( var k in o)            if (new RegExp("(" + k + ")").test(format))                format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]                        : ("00" + o[k]).substr(("" + o[k]).length));        return format;    };        var interval = 0; // 定義一個定時器        // 私人函數:啟動計時器函數    function run(et) {        interval = setInterval(chat, "1000",et); // 定時的設定    }        // 私人函數:定時執行函數    function chat(et) {        var d = new Date().format(‘yyyy-MM-dd hh:mm:ss‘);        //更新結束時間        $("#"+et).html(d);    }        // 外掛程式的defaults    $.timer.defaults = {        startTime : ‘startTime‘,        endTime : ‘endTime‘,        costTime : ‘costTime‘    };        //計時開始    $.timer.start = function(options){        var opts = $.extend({}, $.timer.defaults, options);                var st = new Date().format(‘yyyy-MM-dd hh:mm:ss‘);        $("#"+opts.startTime).html(st);        $("#"+opts.costTime).html("");                chat(opts.endTime);        // 載入頁面時啟動定時器        run(opts.endTime);     };        //私人函數:計算統計耗時    function setCostTime(opts) {        var sTime = $("#"+opts.startTime).html();        var eTime = $("#"+opts.endTime).html();        var sDate = new Date(Date.parse(sTime.replace(/-/g, "/")));        var eDate = new Date(Date.parse(eTime.replace(/-/g, "/")));        var diffMillisecond = eDate.getTime() - sDate.getTime(); // 時間差的毫秒數        // 計算出相差天數        var days = Math.floor(diffMillisecond / (24 * 3600 * 1000));        // 計算出小時數        var leave1 = diffMillisecond % (24 * 3600 * 1000); // 計算天數後剩餘的毫秒數        var hours = Math.floor(leave1 / (3600 * 1000));        // 計算相差分鐘數        var leave2 = leave1 % (3600 * 1000); // 計算時數後剩餘的毫秒數        var minutes = Math.floor(leave2 / (60 * 1000));        // 計算相差秒數        var leave3 = leave2 % (60 * 1000); // 計算分鐘數後剩餘的毫秒數        var seconds = Math.round(leave3 / 1000);        var ctText = "耗時: " + days + "天 " + hours + "小時 " + minutes + " 分鐘" + seconds + " 秒";                $("#"+opts.costTime).html(ctText);    }        //計時結束    $.timer.stop = function(options){                var opts = $.extend({}, $.timer.defaults, options);                // 關閉定時器        clearTimeout(interval);                 setCostTime(opts);            };    })(jQuery);

jQuery計時器外掛程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.