何時間もの検索で手ぶらになった理由がわかりません。状況は次のとおりです。私のサイトのユーザーは、イベントの開始日時を設定できます。その日付と時刻はタイムスタンプとしてデータベースに保存されます。それらのカウントダウンを表示したい。だから、私はデータベースを照会します
SELECT TIMESTAMPDIFF(SECOND, NOW(), start)
FROM events
WHERE eid = '110';
これは、イベントが開始するように設定されるまでの残りの秒数を返します。span
私が望むのは、日数、時間数、分数、および秒数を で 出力できることだけです。
これが私がこれまでに持っているjavascriptです:
コメントを読み、さらに検索し、いくつかのことを一緒にハッキングした後、これが私の更新されたコードです。
<span id="countdown-1"><?php echo $timeToEvent; ?></span>
(「イベントまでの秒数」の値をスクリプトに取得するためのより適切な方法がある場合は、修正してください。)
secs = parseInt(document.getElementById('countdown-1').innerHTML,10);
setTimeout("countdown('countdown-1',"+secs+")", 1000);
function countdown(id, timer){
function pad(num) {
return num > 9 ? num : '0'+num;
};
timer--;
days = Math.floor( timer / 86400 ),
hours = Math.floor( timer / 3600 ),
mins = Math.floor( timer / 60 ),
secs = Math.floor( timer ),
dd = days,
hh = hours - days * 24,
mm = mins - hours * 60,
ss = secs - mins * 60;
clock = dd + ' days ' + pad(hh) + ':' + pad(mm) + ':' + pad(ss) ;
document.getElementById(id).innerHTML = clock;
if ( timer > 0 ) {
setTimeout("countdown('" + id + "'," + timer + ")", 1000);
} else {
window.location.reload(true);
}
}
このコードは機能します。ただし、上で書いたように、php 変数$timeToEvent
をスクリプトに直接渡す必要があるかどうかはわかりません。JavaScriptが見たいものに変更する前に、実際の秒数が約1秒間スパンに表示されるのは少し面倒です。(ちなみに、私はこのコンテキストでの精度について過度に心配していません。時間のずれは気にしません。)