カテゴリ: 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ローカルストレージとセッションストレージの違いを徹底解説!初心者向け保存機能ガイド
New2
JavaScript
JavaScriptのisNaN()とNumber.isNaN()の違いを理解しよう
New3
JavaScript
JavaScriptの配列型(Array)の基本と使い方まとめ
New4
Claude Code
Claude CodeでCSV読み込みと文字化け対策を相談する方法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの比較演算子(==, ===, !=, !==)の違いを初心者向けにわかりやすく解説
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.4
Java&Spring記事人気No4
Claude Code
Claude CodeでCSV読み込みと文字化け対策を相談する方法
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptで「Hello World」を出力する手順と解説
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptの数値型(Number)の使い方と特徴まとめ
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptでZustandの状態に型を定義するベストプラクティス
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptでContext APIによる状態管理に型をつける方法!初心者向け完全ガイド