カテゴリ: 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
TypeScript
TypeScriptで非同期処理を含むES6構文をテストする方法!初心者のための徹底解説
New2
TypeScript
TypeScriptの関数に型をつける方法(引数・戻り値)を初心者向けに徹底解説!
New3
TypeScript
TypeScriptのアロー関数の書き方と使い分けを完全ガイド!初心者にもわかる関数定義の新しい形
New4
JavaScript
JavaScriptの正規表現フラグ(g, i, m)の意味と活用方法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptとES6/ESNextの連携ガイド!最新機能を有効にするtarget設定
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptで日時の差分を計算する方法|ミリ秒・日数の応用テクニック
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptの正規表現(RegExp)の基本構文と仕組みを解説