🌟

JavaScriptの日付操作まとめ

に公開2

JavaScriptでは、日付や時刻を扱うときに Date オブジェクトを使います。
フロントエンド開発では、表示や計算、APIデータ処理などで非常によく使います。

new Date()

const now = new Date();
console.log(now); // 現在の日時が出力される

Date() の中に引数を指定しない場合、現在日時が自動的にセットされます。
引数を入れると、任意の日付を作ることも可能です。

const date1 = new Date('2025-11-04'); // 文字列指定
const date2 = new Date(2025, 10, 4);  // 年・月(0始まり)・日指定
console.log(date1, date2);

toLocaleString()

const now = new Date();
console.log(now.toLocaleString()); // "2025/11/4 14:22:31" など

ユーザーのロケールに応じて見やすい形式で日付を文字列に変換します。
日本語環境なら "YYYY/MM/DD hh:mm:ss" のようになります。

個別に取得するメソッド

メソッド 取得内容
getFullYear() 2025
getMonth() 月(0〜11) 10 → 11月
getDate() 4
getHours() 時間 14
getMinutes() 22
getSeconds() 31
getMilliseconds() ミリ秒 450
getDay() 曜日(0:日〜6:土) 2(火曜)
const now = new Date();
console.log(`${now.getFullYear()}${now.getMonth() + 1}${now.getDate()}`);

⚠️ データ取得時の注意点

  • getMonth() は 0から始まる
  • getDay() は 曜日を数字で返す(例: 0=日曜日)
  • Date は内部的に ミリ秒単位で管理されている

日時データの生成

const birthday = new Date(2000, 6, 10, 14, 30, 0);
console.log(birthday.toLocaleString()); // 2000/7/10 14:30:00

(年, 月, 日, 時, 分, 秒)を指定して作成できます。

年や月をまたいだ日時の生成

JavaScriptでは、日付が自動で繰り上がる/繰り下がる処理が行われます。

const date = new Date(2025, 0, 32); // 2025年1月32日?
console.log(date.toLocaleString()); // → 2025/2/1 に自動調整される

setDate() — 日付の変更や計算

const date = new Date(2025, 0, 10);
date.setDate(date.getDate() + 10);
console.log(date.toLocaleString()); // 2025/1/20

setDate() は「日付を直接書き換える」メソッド。
getDate() と組み合わせて「n日後」「n日前」の計算ができます。

const で宣言できる理由

const d = new Date();
d.setDate(15); // OK
console.log(d);

const で宣言しても、オブジェクト内部の値は変更可能だからです。
const は「再代入禁止」なだけで「中身の変更禁止」ではありません。

getTime() — 時刻をミリ秒で取得

const now = new Date();
console.log(now.getTime()); // 1730695600000 のような数値

1970年1月1日からの経過時間(ミリ秒)を返します。
この「経過時間」を使って日時の差を求めます。

getTime() の活用例

const start = new Date('2025-11-01');
const end = new Date('2025-11-04');
const diff = end.getTime() - start.getTime();
const diffDays = diff / (1000 * 60 * 60 * 24);
console.log(`${diffDays}`); // → 3日

UTC(協定世界時)と日本時間

JavaScriptのDateは内部的にはUTC(世界標準時)で管理されています
ただし、toLocaleString() などを使うと自動的にローカル時間(日本時間など)で表示されます。

UNIXタイムスタンプ

UNIX時間は「1970年1月1日 00:00:00 UTC」からの経過秒数
JavaScriptでは getTime()ミリ秒なので、秒にしたいときは / 1000

const timestamp = Math.floor(Date.now() / 1000);
console.log(timestamp);

日時の差を計算する

const start = new Date('2025-11-01T00:00:00');
const end = new Date('2025-11-04T12:00:00');

const diffMs = end - start;
const diffHours = diffMs / (1000 * 60 * 60);
console.log(`${diffHours}時間の差`);

Date同士を引き算すれば、ミリ秒単位の差を簡単に出せます。

Date.now()

console.log(Date.now()); // 現在時刻のミリ秒

(new Date()).getTime() と同じ。
パフォーマンス計測などに便利です。

const start = Date.now();
// 重い処理
for (let i = 0; i < 1e7; i++) {}
console.log(Date.now() - start + 'ms'); // 実行時間を測る

まとめ

メソッド 内容 よく使う場面
new Date() 日付オブジェクトを生成 現在日時を扱う
toLocaleString() ローカル形式に変換 画面表示用
getFullYear()getSeconds() 各項目を取得 表示・比較
setDate() 日付を変更 n日後などの計算
getTime() ミリ秒取得 差分計算
Date.now() 現在ミリ秒取得 処理時間測定
UTC / UNIX 世界標準時・秒基準 APIやバックエンドとのやり取り

Discussion