◀︎ U

new Date() の物理的な説明

JavaScript の new Date() コンストラクターがどのように動作するかを物理的な視点で解説します.

概要

仕組みの流れ

  1. OS が現在の時間を保持(RTC やシステムクロック)
  2. JavaScript の new Date() がその時刻を取得
  3. 値は 2進数(電気信号 on/off)で RAM に保存
  4. toLocaleString() により人間向け表示に変換

仕組みの流れ

  1. OS が現在の時間を保持(RTC やシステムクロック)
  2. JavaScript の new Date() がその時刻を取得
  3. 値は 2進数(電気信号 on/off)で RAM に保存
  4. toLocaleString() により人間向け表示に変換

new Date() の物理的な説明

Windows / Linux / macOS などのコンピュータの OS には, 1970年1月1日 00:00:00(UTC) を起点とした「UNIXエポック(UNIX時間)」を管理する仕組みがある.

これは, そこから現在までに経過した時間を「ミリ秒単位の数値」として保持している.

JavaScript の new Date()コンストラクターは, 1秒間に数億回(GHz)という高速で切り替わるタイミング(電気的信号)を一つ取得し, その情報で「年月日と時刻」が確定する.

「年月日と時刻」は Unixタイムスタンプ と呼ばれ, Date オブジェクトとして保持することになる.

取得したクロックの電気信号は電圧の変化 ( on / off / on / off ) であるが, ラム・メモリーに送られるとき, 情報は2進数に変換が可能な電気信号として扱われる.

let 今=new Date(); という記述により, 取得した日時の情報は「変数 今」という形で格納されるが, ここで取得したクロックの電気信号は2進数の形式で保存されている → 1101001010100101101101101101000 (バイナリ表記).

今.toLocaleString() メソッドを使用することで, バイナリ表記は人間に読みやすい10進数に変換される.

つまり, 1101001010100101101101101101000 → Unixタイムスタンプ 1110677208 → 2025/12/30 4:50:00 (10進数).

次に textContent を使って表示するが, JavaScript では, まずどこに表示するのかを決めなければいけない.

このドキュメント内の が document で, getElementById("目印") が場所(DOM)である.

用語補足

用語説明
UNIXエポック1970年1月1日 00:00:00(UTC)
UNIXタイムスタンプエポックからの経過時間(ミリ秒)
new Date()現在時刻を取得する JavaScript 構文
toLocaleString()日付・時刻を地域向けに変換

◀︎ U