2012-03-13 90 views
0

我想倒計時時間,這是從PHP的兩次之間的差異,結果是時間戳。從php時間戳差異的JavaScript倒計時

{var $time = new \DateTime()}   

<div class="date" data-date="{= ($time2->getTimestamp() - $time->getTimestamp())*1000}"> 

在數據日期我有不同的時間[時間戳]。現在我要倒計時了。我從HTML獲取這些信息給JS。

$(function() {   
    $(".date").each(function(){   
     time = $(this).data('date');   
     $.countdown($(this).children(".countdown"), time); 
    }); 
}); 

有代碼無法正常工作。

jQuery.countdown = function(selector, datevalue) { 

        var amount = datevalue; 

     // catch past dates 
     if(amount < 0){ 
      $(selector).html("Done"); 
     } 

     // date is in the future, calculate the diff 
     else{ 
      days=0;hours=0;mins=0;secs=0;out=""; 

      amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs 

      days=Math.floor(amount/86400);//days 
      amount=amount%86400; 

      hours=Math.floor(amount/3600);//hours 
      amount=amount%3600; 

      mins=Math.floor(amount/60);//minutes 
      amount=amount%60; 

      secs=Math.floor(amount);//seconds 

      //if(days != 0){out += days +" day"+((days!=1)?"s":"")+", ";} 
          //if(days == 0) { 
           if(days != 0 || hours != 0){out += ((hours<10)?"0":"") + hours +":";} 
           if(days != 0 || hours != 0 || mins != 0){out += ((mins<10)?"0":"") + mins +":";} 
           out += ((secs<10)?"0":"") + secs; 
           $(selector).html(out); 
          //} 
      // run it all again 
      setTimeout(function() { 
       $.countdown(selector, datevalue); 
      }, 1000); 

     } 

}; 

從JS的時間是在正確的地方,但它不倒計時。

+0

應該怎樣的工作,如果你給超時1秒的量? – 2012-03-13 15:11:55

+0

'time = parseInt($(this).data('date'),10);''也許? – mplungjan 2012-03-13 15:25:23

+0

,如果你刪除'amount = Math.floor(amount/1000); //殺死「毫秒」,所以只需秒,你可以從你的php – mplungjan 2012-03-13 15:26:27

回答

0

答案很簡單:你不減少datevalue變量。因此,它的各個版本相同

看看它下面的例子正常工作

jQuery.countdown = function(selector, datevalue) { 

    var amount = datevalue; 

    // catch past dates 
    if(amount < 0){ 
     $(selector).html("Done"); 
    } 

    // date is in the future, calculate the diff 
    else{ 
     datevalue--; 
     $(selector).html(datevalue); 
     setTimeout(function() { 
      $.countdown(selector, datevalue); 
     }, 1000); 
    } 
}; 

$.countdown('.date', 10);​​​ 
+0

Ou中刪除* 1000,這很簡單。 THEX。 – 2012-03-13 15:43:43