はじめに
PHPで日付・時刻を扱うとき、DateTime
クラスは欠かせない存在です。上級試験でも「現在日時の取得」や「フォーマット出力」の理解は必須。この記事では、DateTime
の基本動作を確認しつつ、実行結果の仕組みを図解でわかりやすく整理します。
目次
DateTimeの基本構文
$dobj = new DateTime(); // 現在日時を取得
echo $dobj->format(DateTimeInterface::ATOM); // ATOM形式で出力
ポイント
new DateTime()
- 引数を省略すると
"now"
がデフォルト - 実行時の現在日時を返す
- 引数を省略すると
format(DateTimeInterface::ATOM)
- ATOM(例:
2025-10-11T14:30:00+09:00
)形式で出力
- ATOM(例:
- タイムゾーンを指定可能
タイムゾーン指定した場合のコード
new DateTime("now", new DateTimeZone("Asia/Tokyo"));
実行結果の仕組み
┌───────────────────────┐
│ DateTime() │
│ 引数なし → 現在日時 │
└───────────┬───────────┘
│ format(ATOM)
▼
┌──────────────────────────────┐
│ 2025-10-11T14:30:00+09:00 │ ← 実行時の現在日時が出力される
└──────────────────────────────┘
💡 注意:
- サンプル問題集にある
2025-01-01T00:11:22+09:00
は 固定値ではなく例示 - 実際にコードを実行すると、その瞬間の現在日時が出力されます
固定日時を使う場合
$dobj = new DateTime("2025-01-01 00:11:22", new DateTimeZone("Asia/Tokyo"));
echo $dobj->format(DateTimeInterface::ATOM); // 固定日時を出力可能
試験で「固定日時の出力」を問われた場合はこちらを使用
まとめ
DateTime()
→ 現在日時を取得format()
→ 指定フォーマットで出力- ATOM形式は
YYYY-MM-DDTHH:MM:SS+TZ
- 実行時の日時は動的に変わる
- 固定日時が必要な場合は、引数で指定する