JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで2つの日付を比較する方法をわかりやすく解説

JavaScriptで2つの日付を比較するには、まずnew Date()を使って2つのDateオブジェクトを作成します。Dateオブジェクトは比較演算子(> や <)で直接比較できるため、どちらが新しい(最近の)日付なのかを簡単に判定できます。

以下のサンプルコードでは、現在の日時を持つ「date1」と、文字列から生成した過去の日時を持つ「date2」を用意し、if文で大小を比較して結果を表示しています。コードをコピーしてブラウザで実行すれば、すぐに動作を確認できます。

サンプルコード

<!DOCTYPE html>
<html>
   <body>
      <script>
         var date1, date2;
         date1 = new Date();
         document.write(date1);
         date2 = new Date( "Dec 15, 2014 21:20:15" );
         document.write("<br>"+date2);
         if (date1 > date2) {
            document.write("<br>date1の方が新しい日付です。");
         } else {
            document.write("<br>date2の方が新しい日付です。");
         }
      </script>
   </body>
</html>

コードのポイント

  • new Date():引数なしで呼び出すと、現在の日時を持つDateオブジェクトを生成します。
  • new Date(文字列):「Dec 15, 2014 21:20:15」のように日時を表す文字列を渡すと、その日時のDateオブジェクトを生成します。
  • 比較演算子:「date1 > date2」のように比較すると、内部で保持しているタイムスタンプ(ミリ秒値)をもとに大小が判定されます。

実行結果

Sat Dec 15 2018 11:08:06 GMT+0530 (India Standard Time)
Mon Dec 15 2014 21:20:15 GMT+0530 (India Standard Time)
date1の方が新しい日付です。

補足:タイムゾーンについて

Dateオブジェクトをそのまま出力すると、実行環境のタイムゾーンに合わせた形式で表示されます。上記の例はインド標準時(GMT+0530)での結果ですが、日本の環境で実行すると日本標準時(GMT+0900)で表示されます。また、より厳密に日付を比較したい場合は、getTime()メソッドでミリ秒値を取得し、数値として比較する方法もおすすめです。

  1. Javaで2つの日付と時刻を比較する方法

    Javaで2つの日付や時刻を比較するには、java.time.LocalDateTimeクラスを利用するのが一般的です。このクラスはタイムゾーン情報を持たない「ローカルの日付と時刻」を表すため、従来のjava.util.Dateの代わりとしても使用できます。 LocalDateTimeクラスには、日付と時刻を比較するための便利なメソッドが複数用意されています。 isBefore():呼び出し元の日時が、引数に指定した日時より前(過去)の場合にtrueを返します。 isAfter():呼び出し元の日時が、引数に指定した日時より後(未来)の場合にtrueを返します。 isEqual():両方の日

  2. Javaで2つの日付を比較する方法をわかりやすく解説!compareTo()の使い方と実行例

    Javaで2つの日付を比較したい場合、Comparableインターフェースが提供するcompareTo()メソッドを使うのが基本的な方法です。このメソッドは、2つの日付を比較した結果を整数値(int型)として返します。 compareTo()メソッドの戻り値 0 を返す … 両方の日付が等しい場合 0 より大きい値を返す … date1 が date2 より後の日付の場合 0 より小さい値を返す … date1 が date2 より前の日付の場合 構文 int compareTo(T o) サンプルコード 以下の例では、SimpleDateFormatを使って文字列をDateオブジェクトに