2011-12-21 60 views
0

我想寫一個倒數計時器,它從服務器(php)獲取時間,然後在客戶端(JavaScript)倒計時。不幸的是,我只有一些JavaScript或JQuery的經驗。這時腳本是這樣的:使用PHP和JavaScript實現倒數

<?php 
    $endTime = mktime(00, 00, 00, 01, 01, 2012); 
    $actTime = time(); 
    $difTime = $endTime - $actTime; 
    $seconds = $difTime; 
?> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    window.setInterval(function() { 
     var seconds = $('div#timer').html();      
     var updateTime = eval(seconds)- eval(1);      
     $('div#timer').html(updateTime); 
    }, 1000); 
}); 
</script> 

<div id="timer"><?php echo $seconds ?></div> 

現在我想剩下的秒轉換爲天,月,分鐘和秒。但是,我不知道如何通過函數 setInterval實現這一點。誰能幫我?也許有更好的方法來處理UNIX-Timestamp?

預先感謝您!

馬丁

+0

請注意,'setInterval()'(和'setTimeout()')不能保證回調將按照您指定的時間間隔執行,所以通常是一個好主意,讓當前時間開啓每次迭代(並根據需要計算與原始服務器指定時間的偏移量)。出於同樣的原因,如果將時間間隔設置爲明顯小於1秒的時間,例如50-100毫秒,那麼通常情況下會獲得更平滑的時鐘。這樣,如果時間間隔稍微延遲,則不會覺得計數器跳得太多。 – nnnnnn 2011-12-21 21:18:16

回答

0

使用秒是安靜的最佳途徑。只有倒計時秒數,並從他們計算其餘的。 您只需要將定義的函數擴展爲每1秒執行一次。使用mod和div與math.floor來計算從秒鐘開始的天數和小時數,並用它構建新的字符串並將其放入div。