LoginSignup
0
1

More than 3 years have passed since last update.

【JavaScript入門】カウントダウンタイマー

Last updated at Posted at 2020-07-25

はじめに

ECサイトを作成する際、
・期間限定のセールで残り時間を表示したい
ソーシャルゲームを作成する際、
・限定ガチャやボスが逃げるまでの残り時間を表示したい
と思うことあると思います。
今回は、そんな機能についてご紹介します。

方法

今回は、jQueryを使用して作成します。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

カウントダウンタイマー機能を作成します。

JavaScript
<script>
  var timerId;
  // カウントダウンの終了日
  var endDateTime = new Date("2021/07/23 20:00:00");

  // カウントダウン機能
  function countDownTimer() {
    var startDateTime = new Date();
    var remaining = endDateTime - startDateTime;

    // カウントダウン後、id="contents"の部分の表示を変更 
    if (remaining < 0) {
      $("#contents").html('東京オリンピック開催中です');
      // 繰り返し動作を停止(setIntervalで設定したタイマーをクリア)
      clearInterval(timerId);
      return 
    }

    // 1日の秒数
    var daySeconds = 24 * 60 * 60 * 1000;

    // 残り日数
    var remainingDays = Math.floor(remaining / daySeconds);
    // 残り時間
    var remainingHrs = Math.floor((remaining % daySeconds) / (60 * 60 * 1000));
    // 残り分数
    var remainingMin = Math.floor((remaining % daySeconds) / (60 * 1000)) % 60;
    // 残り秒数
    var remainingSec = Math.floor((remaining % daySeconds) / 1000) % 60 % 60;

    $("#TimeRemaining").text(remainingDays + '' + remainingHrs + '時間' + remainingMin + '' + remainingSec + '');
  }

  // 一定時間ごとに関数countDownTimer()を呼び出す
  $(function() {
    // 1秒刻みで表示させたいので、1000以下に設定  
    timerId = setInterval('countDownTimer()',1000);
  });
</script>
html
<div id="contents">
  <p>東京オリンピックまで</p>
  <p id="TimeRemaining"></p>
</div>

これで機能としては完成です。
あとは、見栄え良くご自身でデザインしましょう。

参考

東京オリンピック
jQuery
Math.floor
Javascriptのタイマー処理 setIntervalとsetTimeout

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1