データの道具箱

INPUT · スライド

日付と時刻を扱う

01 / 05

日時は数字や文字だけでは扱いにくい

「今日は何日?」「2つの日付のどちらが先?」「あと何日残っている?」。

日付は、うるう年や月ごとの日数の違い(28日〜31日)があって、単なる数値や文字列の計算ではすぐに破綻する。そこで使うのが JavaScript の標準の Date クラスだよ。

02 / 05

特定の日時を作る

new Date("年-月-日T時:分:秒Z") のように、国際規格(ISO 8601)の文字列を渡してインスタンスを作る。

末尾の Z は世界協定時(UTC)を表すよ。

const date = new Date("2026-05-15T00:00:00Z");console.log(date.toISOString());

実行結果

2026-05-15T00:00:00.000Z

03 / 05

年・月・日を取り出す

作った Date から各値を取り出すメソッドが用意されている。

  • .getUTCFullYear(): 西暦年(例: 2026)
  • .getUTCMonth(): 月(0〜11)。1月が 0 なので、画面に出すときは + 1 するのが最大の注意点!
  • .getUTCDate(): 日(1〜31)
const d = new Date("2026-05-15T00:00:00Z");console.log(d.getUTCFullYear());console.log(d.getUTCMonth() + 1);console.log(d.getUTCDate());

実行結果

2026
5
15

04 / 05

日付の先後を比べる

2つの日付は、数値と同じように < や > でどちらが過去か未来かを比べられる。

また、.getTime() を呼ぶと 1970年1月1日からの経過ミリ秒が取れるので、引き算すれば時間差が計算できるよ。

const start = new Date("2026-01-01T00:00:00Z");const end = new Date("2026-01-02T00:00:00Z");console.log(start < end);const diffHours = (end.getTime() - start.getTime()) / (1000 * 60 * 60);console.log(diffHours);

実行結果

true
24

05 / 05

まとめて確かめよう

ここまでを整理しておこう。

  • new Date("...") で日時インスタンスを作る
  • 年は .getUTCFullYear()、日は .getUTCDate()
  • 月は .getUTCMonth() で 0 から始まる(1月は 0)
  • < や > で前後の比較ができる

それじゃあ、日時を扱ってみよう。