LoginSignup
0
0

More than 3 years have passed since last update.

【JavaScript】日にちを比較したり、時間や日数の差分を計算する

Last updated at Posted at 2021-01-10

はじめに

この記事では、JavaScriptのDateオブジェクトを使って日にちを比較したり時間や日数の差分を表示する方法を説明しています。

日にちを比較する

Dateオブジェクトは比較演算子「<」「>」などを使って日にちを比較することができます。

    <script>
      var day1 = new Date(2021, 0, 10, 6);
      var day2 = new Date(2021, 0, 17, 6);
      if (day1.getTime() < day2.getTime()) {
        console.log(day2.toLocaleString() + "の方が先の日にちです");
      } else {
        console.log(day1.toLocaleString() + "の方が先の日にちです");
      }
    </script>
    <!-- 出力結果:2021/1/17 6:00:00の方が先の日にちです -->

時間の差分を計算する

次は、経過ミリ秒を使って日にちの差分を計算してみます。

経過ミリ秒はgetTime()メソッドを利用することで取得できます。また、経過ミリ秒は減算演算子「-」を使って計算することができるので2つの日にちの差を出すことができます。

注意すべきことは、それぞれの日にちの経過ミリ秒を単純に引き算をしているので、ミリ秒を時間になおす必要があるという点です。コードは下のようになります。

<script>
  /* 日にちオブジェクト①を指定する */
  var date1 = new Date(2021, 0, 10, 6);
  /* 日にちオブジェクト②を指定する */
  var date2 = new Date(2021, 0, 17, 6);
  /* 日にち①と日にち②の差(ミリ秒)を計算する */
  var date_difference = date2.getTime() - date1.getTime();
  /* getTime()メソッドは、1月1日を起点とした経過ミリ秒を取得 */
  var difference_hh = date_difference / (60 * 60 * 1000);
  console.log(date1.toLocaleString() + "" + date2.toLocaleString() + "の差分は" +
    difference_hh + "時間です");
</script>
<!-- 出力結果:2021/1/10 6:00:00と2021/1/17 6:00:00の差分は168時間です -->

日数の差分を計算する

こちらも先ほどと同様に、経過ミリ秒の差分を計算しミリ秒を日数になおします。コードは下のようになります。

<script>
  //日にちオブジェクト①を指定する
  var date1 = new Date(2021, 0, 10, 6);
  //日にちオブジェクト②を指定する
  var date2 = new Date(2021, 0, 17, 6);
  //日にち①と日にち②の差分(ミリ秒)を計算する
  var date_difference = date2.getTime() - date1.getTime();
  var difference_dd = date_difference / (24 * 60 * 60 * 1000);
  console.log(date1.toLocaleString() + "" + date2.toLocaleString() + "の差分は" +
    difference_dd + "日です");
</script>
<!-- 出力結果:2021/1/10 6:00:00と2021/1/17 6:00:00の差分は7日です -->
0
0
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
0