2015-07-10 76 views
1

這就是代碼人...讓我最新錯了......我應該在哪裏以及如何添加目標或倒計時結束日期。Java腳本countddown不工作

/** 
* downCount: Simple Countdown clock with offset 
* Author: Sonny T. <[email protected]>, sonnyt.com 
*/ 

(function ($) { 

    $.fn.downCount = function (options, callback) { 
     var settings = $.extend({ 
       date: null, 
       offset: null 
      }, options); 

     // Throw error if date is not set 
     if (!settings.date) { 
      $.error('Date is not defined.'); 
     } 

     // Throw error if date is set incorectly 
     if (!Date.parse(settings.date)) { 
      $.error('Incorrect date format, it should look like this, 12/24/2012 12:00:00.'); 
     } 

     // Save container 
     var container = this; 

     /** 
     * Change client's local date to match offset timezone 
     * @return {Object} Fixed Date object. 
     */ 
     var currentDate = function() { 
      // get client's current date 
      var date = new Date(); 

      // turn date to utc 
      var utc = date.getTime() + (date.getTimezoneOffset() * 60000); 

      // set new Date object 
      var new_date = new Date(utc + (3600000*settings.offset)) 

      return new_date; 
     }; 

     /** 
     * Main downCount function that calculates everything 
     */ 
     function countdown() { 
      var target_date = new Date(settings.date), // set target date 
       current_date = currentDate(); // get fixed current date 

      // difference of dates 
      var difference = target_date - current_date; 

      // if difference is negative than it's pass the target date 
      if (difference < 0) { 
       // stop timer 
       clearInterval(interval); 

       if (callback && typeof callback === 'function') callback(); 

       return; 
      } 

      // basic math variables 
      var _second = 1000, 
       _minute = _second * 60, 
       _hour = _minute * 60, 
       _day = _hour * 24; 

      // calculate dates 
      var days = Math.floor(difference/_day), 
       hours = Math.floor((difference % _day)/_hour), 
       minutes = Math.floor((difference % _hour)/_minute), 
       seconds = Math.floor((difference % _minute)/_second); 

       // fix dates so that it will show two digets 
       days = (String(days).length >= 2) ? days : '0' + days; 
       hours = (String(hours).length >= 2) ? hours : '0' + hours; 
       minutes = (String(minutes).length >= 2) ? minutes : '0' + minutes; 
       seconds = (String(seconds).length >= 2) ? seconds : '0' + seconds; 

      // based on the date change the refrence wording 
      var ref_days = (days === 1) ? 'day' : 'days', 
       ref_hours = (hours === 1) ? 'hour' : 'hours', 
       ref_minutes = (minutes === 1) ? 'minute' : 'minutes', 
       ref_seconds = (seconds === 1) ? 'second' : 'seconds'; 

      // set to DOM 
      container.find('.days').text(days); 
      container.find('.hours').text(hours); 
      container.find('.minutes').text(minutes); 
      container.find('.seconds').text(seconds); 

      container.find('.days_ref').text(ref_days); 
      container.find('.hours_ref').text(ref_hours); 
      container.find('.minutes_ref').text(ref_minutes); 
      container.find('.seconds_ref').text(ref_seconds); 
     }; 

     // start 
     var interval = setInterval(countdown, 1000); 
    }; 

})(jQuery); 
+0

這些變化並不能使它工作... –

+2

嗨綜合外電 - 由@SHAZ的*編輯*爲使所有的代碼在代碼窗口千篇一律,沒有「改變」。 –

+0

正如我看到,這不是你自己開發的代碼,也許試試這個:http://fengyuanchen.github.io/countdown/有一個很好的doucumentation – brandelizer

回答

0

該代碼實際上工作。你應該添加一個腳本來調用它。這是一個倒計時插件,它的代碼應該是:

$('.countdown').downCount({ 
    date: '12/02/2015 19:00:00', 
    offset: +1 
}, function() { 
    alert('WOOT WOOT, done!'); 
}); 

日期顯然是你要倒計時的結束日期和時間偏移量爲UTC偏差。 關於它的一切可以找到here

此外,它需要jQuery。