JavaScriptでタイムスタンプ(UNIX時間)を取得・変換する方法を初心者向けに解説
先生と生徒の会話形式で理解しよう
生徒
「先生、JavaScriptで現在の時間を数字で扱いたいんですけど、どうすればいいですか?」
先生
「それなら、UNIX時間、つまり1970年1月1日からの経過ミリ秒を使うと便利です。JavaScriptではDateオブジェクトから簡単に取得できます。」
生徒
「UNIX時間って何ですか?」
先生
「UNIX時間とは、1970年1月1日00:00:00(UTC)から何秒またはミリ秒経過したかを表す数字のことです。コンピュータ同士で日時を扱うときに非常に便利です。」
生徒
「なるほど。それを日付に戻すことはできますか?」
先生
「もちろんです。タイムスタンプからDateオブジェクトを作れば簡単に変換できます。」
1. 現在のタイムスタンプを取得する方法
JavaScriptではDate.now()を使うと、現在時刻のUNIXタイムスタンプ(ミリ秒単位)を取得できます。
const timestamp = Date.now();
console.log(timestamp); // 例: 1768886400000
1768886400000
この数字は1970年1月1日からのミリ秒数です。
2. Dateオブジェクトからタイムスタンプを取得
getTime()メソッドを使うと、Dateオブジェクトからもタイムスタンプを取得できます。
const now = new Date();
const timestamp = now.getTime();
console.log(timestamp);
1768886400000
Date.now()と同じ結果が得られます。
3. UNIX時間(秒単位)に変換する
JavaScriptのgetTime()やDate.now()はミリ秒単位なので、秒単位にしたい場合は1000で割ります。
const timestampSeconds = Math.floor(Date.now() / 1000);
console.log(timestampSeconds); // 例: 1768886400
1768886400
これでサーバーやAPIでよく使われる秒単位のUNIX時間が取得できます。
4. タイムスタンプを日付に変換する
取得したタイムスタンプを人間が読める日付に変換するには、Dateオブジェクトを使います。
const timestamp = 1768886400000; // ミリ秒単位
const date = new Date(timestamp);
console.log(date.toString()); // 例: Tue Nov 18 2025 00:00:00 GMT+0900 (日本標準時)
toString()以外にもtoLocaleString()を使うと、地域に合わせた日付形式で表示できます。
console.log(date.toLocaleString("ja-JP")); // 例: 2025/11/18 0:00:00
5. タイムスタンプの応用例
タイムスタンプは日時の計算にも便利です。例えば、1日後のタイムスタンプを計算することも簡単です。
// 1日 = 24時間 * 60分 * 60秒 * 1000ミリ秒
const oneDay = 24 * 60 * 60 * 1000;
const tomorrowTimestamp = Date.now() + oneDay;
const tomorrow = new Date(tomorrowTimestamp);
console.log(tomorrow.toLocaleString("ja-JP"));
2025/11/19 0:00:00
このようにタイムスタンプを使うと、日付の加減算や比較が非常に簡単になります。