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

JavaScriptで日時の差分を計算する方法|ミリ秒・日数の応用テクニック

JavaScriptの日時の差分を計算する方法(差分のミリ秒・日数など)
JavaScriptの日時の差分を計算する方法(差分のミリ秒・日数など)

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

生徒

「先生、JavaScriptで2つの日付の差を計算したいです。例えば、イベントまであと何日あるか知りたいときです。」

先生

「なるほど、それならDateオブジェクトを使って差分をミリ秒で計算し、必要に応じて日数や時間に変換すると便利です。」

生徒

「ミリ秒ってなんですか?」

先生

「ミリ秒は時間の単位で、1秒の1000分の1です。JavaScriptのDateは内部的に1970年1月1日からのミリ秒で日付を管理しています。」

1. 日付の差をミリ秒で計算する方法

1. 日付の差をミリ秒で計算する方法
1. 日付の差をミリ秒で計算する方法

まず、2つの日付オブジェクトを作成し、getTime()メソッドでミリ秒に変換します。


const startDate = new Date("2025-11-01");
const endDate = new Date("2025-11-18");

// 差分をミリ秒で取得
const diffMs = endDate.getTime() - startDate.getTime();
console.log("差分のミリ秒:", diffMs);

差分のミリ秒: 1476000000

このようにして、正確な時間単位の差分を計算できます。

2. ミリ秒を日数に変換する方法

2. ミリ秒を日数に変換する方法
2. ミリ秒を日数に変換する方法

1日 = 24時間 × 60分 × 60秒 × 1000ミリ秒 です。これを使ってミリ秒から日数を求めます。


const oneDay = 24 * 60 * 60 * 1000;
const diffDays = diffMs / oneDay;
console.log("差分の日数:", diffDays);

差分の日数: 17.0

整数で日数を知りたい場合は、Math.floor()Math.round()を使います。


console.log("整数の日数:", Math.floor(diffDays));

整数の日数: 17

3. 時間や分単位での差分計算

3. 時間や分単位での差分計算
3. 時間や分単位での差分計算

必要に応じて、ミリ秒を時間や分、秒に変換することもできます。


// 時間単位
const diffHours = diffMs / (1000 * 60 * 60);
console.log("差分の時間:", diffHours);

// 分単位
const diffMinutes = diffMs / (1000 * 60);
console.log("差分の分:", diffMinutes);

差分の時間: 408.0
差分の分: 24480.0

4. 応用:締切までの残り日数を計算する

4. 応用:締切までの残り日数を計算する
4. 応用:締切までの残り日数を計算する

今日から特定の未来日付までの残り日数を自動で計算できます。


const today = new Date();
const deadline = new Date("2025-12-01");

// ミリ秒差分
const remainingMs = deadline.getTime() - today.getTime();

// 日数に変換
const remainingDays = Math.ceil(remainingMs / oneDay);
console.log("締切までの残り日数:", remainingDays);

締切までの残り日数: 13

このテクニックはカレンダーアプリやタスク管理で非常に便利です。

5. 過去の日付との差分を計算する

5. 過去の日付との差分を計算する
5. 過去の日付との差分を計算する

過去の日付に対しても同じように差分を計算できます。


const pastDate = new Date("2025-10-01");
const diffFromPast = today.getTime() - pastDate.getTime();
const daysFromPast = Math.floor(diffFromPast / oneDay);
console.log("過去からの日数:", daysFromPast);

過去からの日数: 48

これにより、過去のイベントからの日数経過も簡単に追跡できます。

6. 注意点:時間帯による誤差

6. 注意点:時間帯による誤差
6. 注意点:時間帯による誤差

日付の差を計算するときは、タイムゾーンや夏時間の影響で誤差が出る場合があります。日数だけを計算したい場合は、時間部分を揃えてから計算すると安心です。


// 時間を0:00に揃える
const start = new Date("2025-11-01T00:00:00");
const end = new Date("2025-11-18T00:00:00");
const diffDaysSafe = Math.floor((end.getTime() - start.getTime()) / oneDay);
console.log("安全に計算した日数:", diffDaysSafe);

安全に計算した日数: 17

こうすることで、日付差分計算の精度を保てます。

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptの配列から要素を削除する方法(pop, shift, spliceなど)完全ガイド
New2
JavaScript
JavaScriptで配列を作成する方法!リテラル表記とArrayコンストラクタを比較
New3
TypeScript
TypeScriptのUnion型とMapped Typesの活用法!初心者向け解説
New4
JavaScript
JavaScriptのデータ型の違いを表で比較しよう(一覧解説)
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptでJSONを文字列に変換する方法を初心者向けに解説!JSON.stringifyの使い方ガイド
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでJSON操作の注意点を徹底解説!初心者でも安全に扱える方法
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptの配列の一部を切り出す(slice, spliceの使い方)
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptで関数の型を再利用!ParametersとReturnTypeの使い方を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptで使える基本の型一覧(string, number, booleanなど)