作成日:2026/4/6,最終更新日:2026/4/6

JavaScript / TypeScriptのDateと日時処理について

Dateオブジェクトの基本と日時の扱い方をわかりやすく解説

この記事では、JavaScript / TypeScriptで日時を扱うときに使う Dateオブジェクト について詳しく解説します。
Webアプリでは、現在時刻の表示、投稿日、締切日、予約日時など、日時を扱う場面がとても多くあります。


ただ、Dateは最初のうちは少しクセがあり、月が0始まりだったり、文字列の扱い方で結果が変わったりして混乱しやすいです。
この記事では、まず基本編として、現在日時の取得年・月・日・時刻の取り出し指定日時での生成曜日表示文字列への整形までを順番に整理していきます。


1. Dateオブジェクトとは?

解説: Dateオブジェクト は、JavaScriptで日付や時刻を扱うための仕組みです。
「今が何年何月何日なのか」「今の時刻は何時何分か」「特定の日付は何曜日か」といった情報を扱えます。




● Dateで何ができる?

  • ✅ 現在の日時を取得する
  • ✅ 年・月・日・時・分・秒を取り出す
  • ✅ 指定した日付からDateを作る
  • ✅ 曜日を表示する
  • ✅ 表示用の文字列に整える

まずは、「JavaScriptには日時専用のオブジェクトがあり、それがDateである」と理解しておけば大丈夫です。


● 基本の作り方

const now = new Date();
console.log(now);

new Date() と書くと、その時点の現在日時を持つDateオブジェクトが作られます。


2. 現在の日時を取得する

解説: 現在の日時を取得したいときは、もっとも基本となる new Date() を使います。
これだけで、実行した瞬間の日時情報をまとめて取得できます。




● new Date() の基本

const now = new Date();

console.log(now);
// 結果例 : Sun Apr 06 2026 15:30:45 GMT+0900 (Japan Standard Time)

実行環境によって表示形式は少し異なりますが、年・月・日・時刻・タイムゾーン情報を持ったオブジェクトになります。


● 実行例(デモ)

現在の日時を取得してみよう

ここに結果が表示されます


● ポイント

  • new Date() だけで現在日時を取得できる
  • ✅ 結果は文字列ではなく、Dateオブジェクト
  • ✅ 表示するときは、あとで必要な部分だけ取り出すことが多い

3. 年・月・日・時刻を取り出す

解説: Dateオブジェクトを作っただけでは、そのまま扱いにくいことがあります。
そこでよく使うのが、getFullYear()getMonth() などのメソッドです。




● 年・月・日を取り出す

const now = new Date();

console.log(now.getFullYear()); // 年
console.log(now.getMonth());    // 月(0始まり)
console.log(now.getDate());     // 日

getFullYear() は年、getDate() は日を返します。
ただし、getMonth() は 0 が1月、1が2月...という形になるので注意が必要です。


● 時・分・秒を取り出す

const now = new Date();

console.log(now.getHours());   // 時
console.log(now.getMinutes()); // 分
console.log(now.getSeconds()); // 秒

時刻表示を作るときは、これらを組み合わせて使うことが多いです。


● まとめて表示する例

const now = new Date();

const year = now.getFullYear();
const month = now.getMonth() + 1;
const day = now.getDate();
const hour = now.getHours();
const minute = now.getMinutes();

console.log(`${year}年${month}月${day}日 ${hour}時${minute}分`);

このように、必要な要素を1つずつ取り出して表示用の文字列を作れます。


4. 日時を指定してDateを作る

解説: 現在日時だけでなく、自分で指定した日時のDateオブジェクトを作りたいこともあります。
たとえば、誕生日やイベント日時、予約日時などを扱うときです。




● 数値で指定する方法

const date1 = new Date(2026, 3, 6, 14, 30, 0);
console.log(date1);

引数の順番は、年, 月, 日, 時, 分, 秒 です。
ここでも月は 0始まり なので、4月を指定したいときは 3 を渡します。


● 文字列で指定する方法

const date2 = new Date('2026-04-06');
console.log(date2);

文字列から作ることもできますが、書き方によって解釈が変わることがあるため、最初のうちはシンプルな形式を使うのがおすすめです。


● 日時指定の使い分け

  • ✅ 自分で年月日をしっかり指定したい → 数値で指定
  • ✅ APIなどから日付文字列を受け取る → 文字列で扱う場面もある

5. 曜日を取得して表示する

解説: Dateでは、指定した日付が何曜日かも取得できます。
使うのは getDay() で、結果は数値で返ってきます。




● getDay() の基本

const now = new Date();
console.log(now.getDay());

戻り値は次のような対応です。

数値曜日
0日曜日
1月曜日
2火曜日
3水曜日
4木曜日
5金曜日
6土曜日

● 配列と組み合わせて日本語表示

const now = new Date();
const days = ['日', '月', '火', '水', '木', '金', '土'];

console.log(days[now.getDay()] + '曜日');

曜日表示では、このように配列と組み合わせる書き方がとてもよく使われます。


● 実行例(デモ)

今日は何曜日?

ここに曜日が表示されます


6. 日付を見やすい文字列に整える

解説: Dateオブジェクトをそのまま表示すると、少し見づらいことがあります。
そのため、画面表示では見やすい形に整えてから使うことが多いです。




● 自分で整形する方法

const now = new Date();

const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');

const formatted = `${year}-${month}-${day}`;
console.log(formatted);
// 結果例 : 2026-04-06

padStart(2, '0') を使うと、1桁の月や日も 04 のように2桁でそろえられます。


● toLocaleDateString() の基本

const now = new Date();

console.log(now.toLocaleDateString('ja-JP'));
// 結果例 : 2026/4/6

環境に応じた自然な日付表示をしたいときは、toLocaleDateString() も便利です。


● 日時表示まで含める例

const now = new Date();

console.log(now.toLocaleString('ja-JP'));
// 結果例 : 2026/4/6 15:30:45

日付だけでなく時刻まで含めて表示したいときは、toLocaleString() を使うと手軽です。


7. Dateを使うときの注意点

解説: Dateには便利な機能が多い一方で、初学者の方がつまずきやすいポイントもあります。
ここでは、基本編で押さえておきたい注意点をまとめます。




● 月は0始まり

const date = new Date(2026, 0, 1);
console.log(date); // 2026年1月1日

数値指定では、0 = 1月、1 = 2月 です。
ここはDateで最初につまずきやすいポイントなので、かなり大事です。


● 存在しない日付に注意

const date = new Date('abc');
console.log(date); // Invalid Date

不正な文字列をDateに変換しようとすると、Invalid Date になることがあります。


● 表示形式は環境によって少し違う

toString()toLocaleDateString() の結果は、ブラウザや地域設定によって見え方が少し変わることがあります。
そのため、表示形式を完全にそろえたい場合は、自分で整形する方法もよく使われます。


● 注意点まとめ

  • ✅ 月は 0始まり
  • ✅ 不正な文字列は Invalid Date になる
  • ✅ 表示形式は環境差がある

8. まとめ

Dateオブジェクトは、JavaScript / TypeScriptで日付や時刻を扱うための基本です。
最初は少しクセがありますが、基本的な取り出し方や表示方法を押さえるだけでも、かなり使えるようになります。


● 本記事のポイント

  • new Date() で現在日時を取得できる
  • getFullYear / getMonth / getDate などで各値を取り出せる
  • 日時を数値や文字列から生成できる
  • getDay() で曜日を取得できる
  • padStarttoLocaleDateString() で見やすく整形できる
  • 月が0始まりなど、Date特有の注意点がある

● 次への導線

基本編に慣れてきたら、次は発展編として次のようなテーマに進みやすいです。

  • 日付の加算・減算
  • 2つの日付の差分計算
  • 月末判定や期間比較
  • タイムゾーンやより実務的な整形

Dateは一見地味ですが、実務では本当によく使います。まずは「今の日時を取得する」「必要な部分だけ取り出す」「見やすく表示する」という基本をしっかり押さえておきましょう。