指定した時間までのカウントダウンをJavaScriptで作る機会があったのでメモ。
サンプルコード
HTML
#countdown-unitの中にカウントダウンの数字を入れます。
<div id="countdown-unit"></div>
JavaScript
// 期限の設定 var gYear = 2020, // 年 gMonth = 7, // 月 gDay = 24, // 日 gHour = 0, // 時 gMinute = 0, // 分 gSecond = 0; // 秒 var goal = new Date(gYear, gMonth-1, gDay, gHour, gMinute, gSecond); // 使用する変数の宣言 var currentTime, period, cDay, cHour, cMinute, cSecond, insert = ""; // カウントダウンの処理 function countdown() { // 現在から期限日までの差を取得 currentTime = new Date(); period = goal.getTime() - currentTime.getTime(); // 期限を過ぎていない時 if(period >= 0) { // 日数を取得 cDay = Math.floor(period / (1000 * 60 * 60 * 24)); period -= (cDay * (1000 * 60 * 60 * 24)); // 時間を取得 cHour = Math.floor(period / (1000 * 60 * 60)); period -= (cHour * (1000 * 60 * 60)); // 分を取得 cMinute = Math.floor(period / (1000 * 60)); period -= (cMinute * (1000 * 60)); // 秒を取得 cSecond = Math.floor(period / (1000)); period -= (cSecond * (1000)); // フレーム cFlame = Math.floor(period / (10)); // 残り日数の書き換え insert = ""; insert += '<span class="d">' + cDay + '</span>' + "日"; insert += '<span class="h">' + cHour + '</span>' + ":"; insert += '<span class="m">' + cMinute + '</span>' + ":"; insert += '<span class="s">' + cSecond + '</span>' + ":"; insert += '<span class="f">' + cFlame + '</span>' + ""; document.getElementById('countdown-unit').innerHTML = insert; // カウントダウンの処理を再実行 setTimeout(countdown, 10); // 期限を過ぎた時 } else { document.getElementById('countdown-unit').innerHTML = 'Time Up'; } } // 処理の実行 countdown();
あまりこういった処理を作ったことがなかったのですが、カウントダウンだけではなくて
年が明けたらサイトのバナーを差し替えたい、みたいなのとか色々使いどころがありそうに思います。
コメントが承認されるまで時間がかかります。