活動開始和截止時間倒計時
阿新 • • 發佈:2019-01-06
一個活動,擁有開始時間結束時間,分別需要去執行相關的任務,公司的一些專案中用的還挺多,隨手記錄一下吧,便於以後用到。
程式碼如下:
(function($){ $.actCountTimer=function(options){ //各種屬性、引數 var defaults = { DurationTime:['20170109085500','20170119085500'], //活動開啟和截止時間 open:function(){}, //活動開始執行 close:function(){} //活動結束執行 }; var _opt = $.extend(defaults,options); var startTimer=_opt.DurationTime[0],endTimer=_opt.DurationTime[1]; var start_time=new Date(parseInt(startTimer.substr(0,4)),parseInt(startTimer.substr(4,2)),parseInt(startTimer.substr(6,2)),parseInt(startTimer.substr(8,2)),parseInt(startTimer.substr(10,2)),parseInt(startTimer.substr(12,2))),end_time=new Date(parseInt(endTimer.substr(0,4)),parseInt(endTimer.substr(4,2)),parseInt(endTimer.substr(6,2)),parseInt(endTimer.substr(8,2)),parseInt(endTimer.substr(10,2)),parseInt(endTimer.substr(12,2))); var start_timeMonth=start_time.getMonth()-1,end_timeMonth=end_time.getMonth()-1; start_time.setMonth(start_timeMonth); end_time.setMonth(end_timeMonth); _mainFun(); function _mainFun(flag){ var curr_time=new Date(); if(flag){ if(end_time>curr_time){ setTimeout(function(){ _mainFun(1); },1000); }else{ _opt.close.call(this); } }else{ if(start_time>curr_time){ setTimeout(function(){ _mainFun(); },1000); }else{ if(end_time>curr_time){ _opt.open.call(this); setTimeout(function(){ _mainFun(1); },1000); }else{ _opt.close.call(this); } } } } } })(jQuery);
用法如下:
$.actCountTimer({
DurationTime:['20170109105150','20180109105200'], //活動開啟和截止時間
open:function(){ //活動開始執行
console.log('open');
},
close:function(){ //活動結束執行
console.log('close');
}
});