2013-07-17 80 views
0

我創建了一個jquery計數器,但我無法讓它設置爲我的特定日期。我希望它設置爲16/12/2013。我在這裏做錯了什麼?當我運行這個代碼時,它給了我錯誤的天數。設置倒計時到特定日期

腳本

$(function(){ 

$('#counter').countdown({    
    timestamp : new Date(2013,12,16) 

}); 
}); 

倒計時Ĵ查詢

(function($){ 

// Number of seconds in every time division 
var days = 24*60*60, 
    hours = 60*60, 
    minutes = 60; 

// Creating the plugin 
$.fn.countdown = function(prop){ 

    var options = $.extend({ 
     callback : function(){}, 
     timestamp : 0 
    },prop); 

    var left, d, h, m, s, positions; 

    // Initialize the plugin 
    init(this, options); 

    positions = this.find('.position'); 

    (function tick(){ 

     // Time left 
     left = Math.floor((options.timestamp - (new Date()))/1000); 

     if(left < 0){ 
      left = 0; 
     } 

     // Number of days left 
     d = Math.floor(left/days); 
     updateDuo(0, 1, d); 
     left -= d*days; 

     // Number of hours left 
     h = Math.floor(left/hours); 
     updateDuo(2, 3, h); 
     left -= h*hours; 

     // Number of minutes left 
     m = Math.floor(left/minutes); 
     updateDuo(4, 5, m); 
     left -= m*minutes; 

     // Number of seconds left 
     s = left; 
     updateDuo(6, 7, s); 

     // Calling an optional user supplied callback 
     options.callback(d, h, m, s); 

     // Scheduling another call of this function in 1s 
     setTimeout(tick, 1000); 
    })(); 

    // This function updates two digit positions at once 
    function updateDuo(minor,major,value){ 
     switchDigit(positions.eq(minor),Math.floor(value/10)%10); 
     switchDigit(positions.eq(major),value%10); 
    } 

    return this; 
}; 


function init(elem, options){ 
    elem.addClass('countdownHolder'); 

    // Creating the markup inside the container 
    $.each(['Days','Hours','Minutes','Seconds'],function(i){ 
     $('<span class="count'+this+'">').html(
      '<div>\ 
      <p class="position">\ 
       <span class="digit static">0</span>\ 
      </p>\ 
      </div>\ 
      <div>\ 
      <p class="position">\ 
       <span class="digit static">0</span>\ 
      </p>\ 
      </div>' 
     ).appendTo(elem); 

     if(this!="Seconds"){ 
      elem.append('<p>:</p><span class="countDiv countDiv'+i+'"></span>'); 
     } 
    }); 

} 

// Creates an animated transition between the two numbers 
function switchDigit(position,number){ 

    var digit = position.find('.digit') 

    if(digit.is(':animated')){ 
     return false; 
    } 

    if(position.data('digit') == number){ 
     // We are already showing this number 
     return false; 
    } 

    position.data('digit', number); 

    var replacement = $('<span>',{ 
     'class':'digit', 
     css:{ 
      top:0, 
      opacity:0 
     }, 
     html:number 
    }); 

    // The .static class is added when the animation 
    // completes. This makes it run smoother. 

    digit 
     .before(replacement) 
     .removeClass('static') 
     .animate({top:0,opacity:0},'fast',function(){ 
      digit.remove(); 
     }) 

回答