JavaScriptでの日付情報の数値への変換
JavaScriptでは、日付を数値に変換する方法がいくつかあります。ここではその主な方法とその数学的な背景について解説します。日付の情報を数値で表すことによって、計算や比較が容易になります。
目次:
日付から数値への変換
JavaScriptの日付オブジェクトには、日付を数値として取得するためのメソッドがいくつかあります。最もよく使用される方法の1つは、Date
オブジェクトを作成し、そのメソッドを使って数値を取得する方法です。
new Date()
を使うと、現在の日付と時刻を持つDate
オブジェクトを生成できます。このオブジェクトは、getTime()
メソッドを使って、エポックからの経過ミリ秒を取得することができます。
例:
const date = new Date(); const timestamp = date.getTime(); // ミリ秒単位で取得 console.log(timestamp);
このようにして、日付はミリ秒単位の数値として表現されます。エポック(1970年1月1日午前0時0分0秒 UTC)からの経過時間をミリ秒で表すため、数学的には次のように表現できます。
日付 d
を数値 t
に変換する場合、次のような数式になります:
ここで、epoch
は1970年1月1日午前0時0分0秒 UTCです。
タイムスタンプ (Unix時間)
タイムスタンプとは、Unixエポックからの経過秒数を指します。JavaScriptのDate
オブジェクトを使ってタイムスタンプを取得する場合、ミリ秒ではなく秒を取得するためにgetTime()
の結果を1000で割ります。
例:
const date = new Date(); const unixTimestamp = Math.floor(date.getTime() / 1000); // 秒単位に変換 console.log(unixTimestamp);
この例では、unixTimestamp
は1970年1月1日からの経過秒数となります。数式としては次のように表せます:
ここで、\left\lfloor \cdot \right\rfloor
は小数点以下を切り捨てることを意味します。
エポックからの経過ミリ秒
JavaScriptでは、getTime()
メソッドを使用すると、日付がエポックからの経過ミリ秒として数値で返されます。これを使うと、より高精度で時間を扱うことができます。
例:
const date = new Date(); const millisecondsSinceEpoch = date.getTime(); console.log(millisecondsSinceEpoch);
上記のコードで得られる数値は、ミリ秒単位で1970年1月1日からの経過時間を示しています。
日付の差を数値で表現
2つの日付間の差を計算する場合、JavaScriptではその差をミリ秒単位で取得することができます。2つの日付を引き算することで、その差がミリ秒単位で得られます。
例:
const date1 = new Date('2025-01-19'); const date2 = new Date('2024-01-19'); const diffMilliseconds = date1 - date2; // ミリ秒単位の差 console.log(diffMilliseconds);
この差は、次のように表すことができます:
$$ \Delta t = t_2 – t_1 $$ここで、t_1
とt_2
はそれぞれ2つの日付に対応するタイムスタンプです。この差は、ミリ秒単位で表現されます。
日付の差を秒、分、時間、または日単位に変換することもできます。例えば、秒単位に変換するには、差を1000で割ります。
const diffSeconds = diffMilliseconds / 1000; // 秒単位に変換 console.log(diffSeconds);