【JavaScript】getTimeとは?「使い方」などを分かりやすく解説!

この記事ではDateオブジェクトのgetTimeメソッドについて、以下の内容をサンプルコードを用いてわかりやすく解説します。

  • getTimeメソッドとは
  • getTimeメソッドの構文
  • getTimeメソッドの特徴
  • getTimeメソッドの使い方
  • getTimeメソッドとvalueOfメソッドの違い

getTimeメソッドとは

getTimeメソッドは、「協定世界時(UTC)の1970年1月1日0時0分0秒」から「Dateオブジェクトの日時」までの経過したミリ秒数を取得するメソッドです。

後ほどgetTimeメソッドの構文や使い方について詳しく説明しますが、まず以下に示す簡単なサンプルコードを見てみましょう。

const date = new Date(); // 現在日時を取得
console.log(date.getTime()); // 「1970年1月1日00:00:00 UTC」から現在までの経過したミリ秒数
// 出力例
// 158243760000

このコードを実行すると「1970年1月1日00:00:00 UTC」から現在日時までの経過したミリ秒数が出力されます。

あわせて読みたい

「協定世界時(UTC)の1970年1月1日午前0時0分0秒」からの経過したミリ秒数のことをエポックミリ秒といいます。

エポックミリ秒』については下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

getTimeメソッドの構文

getTimeメソッドの構文を以下に示します。

getTimeメソッドの構文

date.getTime();

getTimeメソッドの返り値を以下に示します。

返り値(戻り値)

  • 「1970年1月1日00:00:00 UTC」から「Dateオブジェクトの日時」までの経過したミリ秒数

getTimeメソッドの特徴

getTimeメソッドの特徴を以下に示します。

  • タイムゾーンに依存しない
    • getTimeメソッドで取得した値は常にUTC基準のミリ秒数なので、ローカルタイムゾーンの影響を受けません。
  • 数値なので計算しやすい
    • 取得したミリ秒の値はnumber型であるため、加減算が簡単にでき、日時の差分計算などに最適です。

getTimeメソッドの使い方

getTimeメソッドについて、以下に示している使い方を順番に説明します。

  • 現在の日時をエポックミリ秒で取得する
  • 2つの日付の差分を計算する
  • 特定の日時のエポックミリ秒を取得する
  • 日付をコピーする
  • 実行時間を計測する

現在の日時をエポックミリ秒で取得する

現在の日時をエポックミリ秒で取得するサンプルコードを以下に示します。

const nowDate = new Date();
console.log("現在のミリ秒:", nowDate.getTime());
// 出力例
// 現在のミリ秒: 158243760000

このコードを実行すると「1970年1月1日00:00:00 UTC」から現在日時までの経過したミリ秒数が出力されます。

2つの日付の差分を計算する

2つの日付のエポックミリ秒を取得し、その差を求めることで日数の差を計算できます。サンプルコードを以下に示します。

const startDate = new Date('2025-01-01T00:00:00');
const endDate = new Date('2025-01-10T00:00:00');
const diff = endDate.getTime() - startDate.getTime();
console.log('日数差:', diff / (1000 * 60 * 60 * 24), '日');
// 出力
// 日数差: 9 日

このコードでは、2025年1月1日から2025年1月10日までの差をミリ秒単位で取得し、それを1日(1000 * 60 * 60 * 24 ミリ秒)で割ることで、日数の差を算出しています。

特定の日時のエポックミリ秒を取得する

特定の日時のエポックミリ秒を取得するサンプルコードを以下に示します。

const specificDate = new Date('2000-12-31T23:59:59');
console.log('2000年12月31日のエポックミリ秒:', specificDate.getTime());
// 出力
// 2000年12月31日のエポックミリ秒: 978274799000

このコードを実行すると、「1970年1月1日00:00:00 UTC」から「2000年12月31日23:59:59 UTC」までの経過したミリ秒数が出力されます。

日付をコピーする

Dateオブジェクトの日時をコピーするサンプルコードを以下に示します。

// JavaScriptのDateコンストラクタは月を0から数えるため、birthdayは1990年2月25日になります
const birthday = new Date(1990, 1, 25);
const copyBirthday = new Date();
copyBirthday.setTime(birthday.getTime());

このコードでは、birthdayオブジェクトの日時をgetTimeメソッドで取得しています。その後、setTimeメソッドを使って、新しいDateオブジェクト(copyBirthday)にbirthdayの日時をセットしています。

あわせて読みたい

setTimeメソッド』については下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

実行時間を計測する

getTimeメソッドを利用すると、処理の実行時間を計測できます。

let end, start;

start = new Date();
for (let i = 0; i < 10000000; i++) {
  Math.sqrt(i);
}
end = new Date();

console.log(`処理時間 ${end.getTime() - start.getTime()} ミリ秒`);
// 出力例
// 処理時間 8 ミリ秒

このコードでは、処理の開始時間と終了時間をgetTimeメソッドで取得し、差分を取ることで処理にかかった時間(ミリ秒)を計測しています。ただし、処理時間の計測には、performance.nowメソッドを用いる方が一般的です。

あわせて読みたい

performance.nowメソッドについては下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

getTimeメソッドとvalueOfメソッドの違い

JavaScriptのDateオブジェクトでは、「協定世界時(UTC)の1970年1月1日0時0分0秒」から「Dateオブジェクトの日時」までの経過したミリ秒数を取得する方法がgetTimeメソッドとvalueOfメソッドの2つあります。結論から言うと、どちらも同じ値を返します。以下にサンプルコードを示します。

const date1 = new Date(2025, 1, 25); // 2025年2月25日
console.log(date1.getTime()); // 1740409200000

const date2 = new Date(2025, 1, 25); // 2025年2月25日
console.log(date2.valueOf()); // 1740409200000

valueOfメソッドは、Dateオブジェクトが内部的に持つ「プリミティブ値(数値)」を取得するメソッドです。Dateオブジェクトは、日付や時刻の情報を「1970年1月1日 00:00:00 UTC からの経過ミリ秒」の値として持っています。valueOfメソッドを使うと、このミリ秒単位の数値を取得できます。結果として、getTimeメソッドと同じ値を返します。

本記事のまとめ

この記事ではDateオブジェクトのgetTimeメソッドについて、以下の内容を説明しました。

  • getTimeメソッド
    • 「協定世界時(UTC)の1970年1月1日0時0分0秒」から「Dateオブジェクトの日時」までの経過したミリ秒数を取得する
  • getTimeメソッドとvalueOfメソッドは同じ値を返す

お読み頂きありがとうございました。