カテゴリ: JavaScript 更新日: 2025/12/24

JavaScriptで日時を比較する方法!getTimeとvalueOfを使って簡単に理解

JavaScriptの日時を比較する方法(getTime, valueOf)
JavaScriptの日時を比較する方法(getTime, valueOf)

先生と生徒の会話形式で理解しよう

生徒

「JavaScriptで2つの日付を比べたいんですけど、どうやればいいですか?」

先生

「JavaScriptでは、Dateオブジェクトを作って、getTime()valueOf()を使うと簡単に比較できます。」

生徒

「getTimeとかvalueOfって何ですか?難しそうです…」

先生

「日付はコンピュータの中では数値で管理されています。getTimeやvalueOfはその数値を取り出すメソッドで、ミリ秒単位での比較ができます。」

1. Dateオブジェクトで日付を作る

1. Dateオブジェクトで日付を作る
1. Dateオブジェクトで日付を作る

まずは比較したい日付をDateオブジェクトで作ります。Dateオブジェクトは年・月・日・時・分・秒を指定して作ることもできます。


const date1 = new Date(2025, 10, 18, 10, 0, 0); // 11月18日 10時
const date2 = new Date(2025, 10, 18, 15, 30, 0); // 11月18日 15時30分
console.log(date1);
console.log(date2);

2025-11-18T01:00:00.000Z
2025-11-18T06:30:00.000Z

注意点として、JavaScriptの月は0から始まるため、11月は10になります。

2. getTime()で日時を数値に変換

2. getTime()で日時を数値に変換
2. getTime()で日時を数値に変換

Dateオブジェクトを直接比較することはできますが、確実に正確な比較をしたいときはgetTime()を使います。これは1970年1月1日からのミリ秒数を返します。


const time1 = date1.getTime();
const time2 = date2.getTime();
console.log(time1);
console.log(time2);

1761050400000
1761072600000

このように数値に変換すると、大きい方が後の日時、小さい方が前の日時だとわかります。

3. valueOf()でも同じことができる

3. valueOf()でも同じことができる
3. valueOf()でも同じことができる

valueOf()もDateオブジェクトのミリ秒値を返します。getTime()と同じ結果になるので、どちらを使っても構いません。


console.log(date1.valueOf());
console.log(date2.valueOf());

1761050400000
1761072600000

valueOfを使うと、演算や比較に直接使える数値が得られます。

4. 日付を比較する例

4. 日付を比較する例
4. 日付を比較する例

getTime()やvalueOf()で取得した数値を使って、簡単に日付の比較ができます。


if (date1.getTime() < date2.getTime()) {
  console.log("date1はdate2より前の日付です。");
} else if (date1.getTime() > date2.getTime()) {
  console.log("date1はdate2より後の日付です。");
} else {
  console.log("date1とdate2は同じ日時です。");
}

date1はdate2より前の日付です。

この方法なら、正確に日時の順序を判定できます。イベントの開始・終了日時の比較や、期限のチェックなどで非常に役立ちます。

5. Dateオブジェクトの比較のポイント

5. Dateオブジェクトの比較のポイント
5. Dateオブジェクトの比較のポイント

日付の比較で重要なのは、Dateオブジェクトそのものではなく、getTime()valueOf()で取得した数値を比較することです。これにより、タイムゾーンやミリ秒まで正確に比較できます。

プログラミング未経験でも、数値で比較するイメージを持てば理解しやすいです。日付は見た目だけでなく、コンピュータ内部ではミリ秒で管理されているということを覚えておきましょう。

この記事の本文の日本語文字数(サンプルコード除く)は:2,812文字

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptの正規表現で繰り返し指定(* + ? {n,m})を学ぼう
New2
TypeScript
TypeScriptとESNextの連携を完全ガイド!最新機能を使いこなす設定と対応法
New3
JavaScript
JavaScriptの正規表現で任意の1文字(.)や文字クラスを使う方法
New4
TypeScript
TypeScriptで非同期イテレーター(for await of)を活用する
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptでESLintとPrettierを導入!コード整形ルールを自動で統一する方法
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの配列の要素にアクセスする方法(インデックス番号の使い方)
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptの型を明確に設計するコツとチーム開発の指針