2011-12-21 6 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タイムスタンプを扱うより良い方法がありますか?

ありがとうございます!

マーティン

+0

なお 'たsetInterval()'(と 'のsetTimeout()は、')コールバックは、指定した間隔で正確に実行されることを保証するものではありませんので、それは一般的に現在時刻を取得することをお勧めします各反復(そして、必要に応じて元のサーバー指定時刻からのオフセットを計算します)。同じ理由で、インターバルを1秒よりもかなり短く設定すると、一般的にスムーズな時計が得られます。たとえば、50-100msと言います。間隔が少し遅れてもカウンタが大きく飛んだように感じることはありません。 – nnnnnn

答えて

0

秒を使用するのが最善の方法です。そして、秒を数えて残りの部分を計算するだけです。 1秒ごとに実行するように定義された関数を拡張するだけです。 modとdivを使ってmath.floorを使って秒と日を計算し、新しい文字列を作成してdivに入れます。

関連する問題