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)

ありがとう

4

2 に答える 2

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));
于 2012-09-08T06:54:18.200 に答える
0

私の問題は交換することで解決しました

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

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

Rusty Jeansのおかげです:)

于 2012-09-14T11:32:28.297 に答える