オンライン試験用にPHPでダウンカウンターを作成する方法とカウンターが0に達した後、自動的に試験を終了する必要があります可能であればこれらのコードを使用できますか教えてください
<!-- Display the countdown timer in an element -->
<p id="demo"></p>
<script>
// Set the date we're counting down to
var countDownDate = new Date("Sep 5, 2018 15:37:25").getTime();
// Update the count down every 1 second
var x = setInterval(function() {
// Get todays date and time
var now = new Date().getTime();
// Find the distance between now an the count down date
var distance = countDownDate - now;
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Display the result in the element with id="demo"
document.getElementById("demo").innerHTML = days + "d " + hours + "h "
+ minutes + "m " + seconds + "s ";
// If the count down is finished, write some text
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
}, 1000);
</script>
回答 2 件
strtotime関数を使用して日付を取得します。
$date = strtotime("Sep 5, 2018 15:37:25"); $remaining = $date - time();
次に、$remainingは残りの秒数です。次に、その数を分割して、日数、時間数、分数などを取得できます。
$daysRemaining = floor($remaining / 86400); $hoursRemaining = floor(($remaining % 86400) / 3600);
これをJavaScript関数に入れると、次のようになります。
<script> setInterval(function() { <?php /* It is important that the date field in the database is the proper datatype, i.e. DATETIME. The 'date' in this select statement is your date field The where clause is the condition of a specific selection in your table You then replace the hardcoded date with the data stored as a php variable */ $sql = "SELECT date FROM table WHERE something='something'"; $result = mysql_query($sql); $dateData = mysql_fetch_array($result)[0]; $date = strtotime("".$dateData.""); $remaining = $date - time(); $daysRemaining = floor($remaining / 86400); $hoursRemaining = floor(($remaining % 86400) / 3600); ?> var days = <?php echo $daysRemaining; ?>; var hours = <?php echo $hoursRemaining; ?>; <?php if($remaining <= 0) { ?> document.getElementById("demo").innerHTML = "EXPIRED"; <?php }else { ?> document.getElementById("demo").innerHTML = days + "d " + hours + "h "; <?php } ?> }, 1000); </script>
編集:
データベースの日付が必要であることを確認したら、編集済みの回答を参照してください。 mysqliまたはPDO構文のいずれかを使用する場合は、mysql構文を変更してください。 mysql_が原因でmysqli_またはPDOをまだ使用していない場合は、使用することをお勧めします 非推奨です。
お役に立てれば。
しかし質問。検査時間を知っている場合、単にその時間を使用するのをやめるにはどうすればよいですか?とにかく、データベースから日付を取得する方法を示しました。
関連した質問
- ajaxコールバック後にインクリメントカウンターが機能しない
- PHPのURLではなく履歴書にソーシャルアイコンを表示する方法は?
- ボタンを最初に使用した後、jQueryがデータIDを返さない
- 初心者の質問:サーバー時間に基づく静的カウントダウンタイマー
- AJAX:400の悪いリクエスト
- 検索ボックス(AJAX)は要求されたデータをロードしません
- PHPとAjaxを使用して動的テーブルを作成してデータをテーブルに挿入します。ビューまたは最初のページ内にない場合はボタンを使用できません
- phpajaxを使用してDatatableが明確ではない
- 配列とオブジェクトを受け取った場合にjQueryでphpからデータを解析する方法
- JSONからドロップダウンを入力します
あなたのコメントで述べたように、データベースから日付を取得する必要があるので、フィールドに保存してスクリプトで取得するだけです
質問でデータベースについて何も言及していないため、データベースから日付を取得する方法を伝えることはできません。しかし、あなたがその方法を知っていることを願っています。したがって、
$dateFromDB
に保存するだけです 。こんな感じそして、
dateDB
を使用します 静的な日付の代わりに