2012-09-08 82 views
0

我有倒數計時器,有幾天,幾小時,幾分鐘和幾秒鐘。我想刪除幾天。需要將日期轉換爲小時。倒數計時器,需要轉換幾天到幾小時

我試圖自己做,但沒有成功,因爲缺乏知識。

(function(){ 
    $.fn.lofCountDown = function(options) { 
     return this.each(function() { 
      // get instance of the lofCountDown. 
      new $.lofCountDown(this, options); 
     }); 
    } 
    $.lofCountDown = function(obj, options){ 
     this.options = $.extend({ 
       autoStart   : true, 
       LeadingZero:true, 
       DisplayFormat:"<div>%%D%% Days</div><div>%%H%% Hours</div><div>%%M%% Minutes</div><div>%%S%% Seconds</div>", 
       FinishMessage:"Expired", 
       CountActive:true, 
       TargetDate:null 
     }, options || {}); 
     if(this.options.TargetDate == null || this.options.TargetDate == ''){ 
      return ; 
     } 
     this.timer = null; 
     this.element = obj; 
     this.CountStepper = -1; 
     this.CountStepper = Math.ceil(this.CountStepper); 
     this.SetTimeOutPeriod = (Math.abs(this.CountStepper)-1)*1000 + 990; 
     var dthen = new Date(this.options.TargetDate); 
     var dnow = new Date(); 
     if(this.CountStepper > 0) { 
      ddiff = new Date(dnow-dthen); 
     } 
     else { 
      ddiff = new Date(dthen-dnow); 
     } 
     gsecs = Math.floor(ddiff.valueOf()/1000); 
     this.CountBack(gsecs, this); 
    }; 
    $.lofCountDown.fn = $.lofCountDown.prototype; 
    $.lofCountDown.fn.extend = $.lofCountDown.extend = $.extend; 
    $.lofCountDown.fn.extend({ 
     calculateDate:function(secs, num1, num2){ 
       var s = ((Math.floor(secs/num1))%num2).toString(); 
       if (this.options.LeadingZero && s.length < 2) { 
        s = "0" + s; 
       } 
       return "<b>" + s + "</b>"; 
     }, 
     CountBack:function(secs, self){ 
      if (secs < 0) { 
       self.element.innerHTML = '<div class="lof-labelexpired"> '+self.options.FinishMessage+"</div>"; 
       return; 
       } 
       clearInterval(self.timer); 
       DisplayStr = self.options.DisplayFormat.replace(/%%D%%/g, self.calculateDate(secs,86400,100000)); 
       DisplayStr = DisplayStr.replace(/%%H%%/g, self.calculateDate(secs,3600,24)); 
       DisplayStr = DisplayStr.replace(/%%M%%/g, self.calculateDate(secs,60,60)); 
       DisplayStr = DisplayStr.replace(/%%S%%/g, self.calculateDate(secs,1,60)); 
       self.element.innerHTML = DisplayStr; 
       if (self.options.CountActive) { 
        self.timer = null; 
       self.timer = setTimeout(function(){ 
        self.CountBack((secs+self.CountStepper),self);   
       },(self.SetTimeOutPeriod)); 
      } 
     }   
    }) 
})(jQuery) 

感謝

回答

2

更改這行:

DisplayFormat:"<div>%%D%% Days</div><div>%%H%% Hours</div><div>%%M%% Minutes</div><div>%%S%% Seconds</div>", 

閱讀:

DisplayFormat:"<div>%%H%% Hours</div><div>%%M%% Minutes</div><div>%%S%% Seconds</div>", 

然後改變這一行:

DisplayStr = DisplayStr.replace(/%%H%%/g, self.calculateDate(secs,3600,24)); 

要閱讀:

DisplayStr = DisplayStr.replace(/%%H%%/g, self.calculateDate(secs,3600,876581)); 
+0

完美!謝謝!! – LifeIsShort

+0

還有一個問題。如何區分小時:分鐘:秒? – LifeIsShort

+0

變量'DisplayFormat'控制如何顯示倒計時。 '%% H %%'=小時,'%% M %%'=分鐘,'%% S %%'=秒。要將其設置爲小時:分鐘:秒的格式,可以將'DisplayFormat'變量設置爲'%% H %%:%% M %%:%% S %%'。 –

0

我的問題是通過更換

解決

DisplayStr = DisplayStr.replace(/ %%ħ%% /克,self.calculateDate(秒,3600,24));

DisplayStr = DisplayStr.replace(/ %%ħ%% /克,self.calculateDate(秒,3600,876581));由於生鏽的牛仔褲:)

相關問題