#18 PHPで学ぶ日付と時刻の扱いの基本
PHPの日付操作は、Webサイトの投稿日時表示など、実務でも頻繁に使われる機能です。この記事では、PHPにおける日付と時刻の基本的な扱い方を解説します。
date()関数を使う
echo date("Y年m月d日");
PHPには、日付を扱う手軽な`date()`関数が標準で用意されています。`Y`は西暦4桁、`m`は月(2桁)、`d`は日(2桁)を表す書式指定子で、`H:i:s`のように組み合わせれば時刻の表示にも使えます。
DateTimeクラスを使う
より柔軟に日付を扱いたい場合は、`DateTime`というクラスを使います。
$now = new DateTime();
echo $now->format("Y年m月d日");
`date()`関数は現在時刻や指定したタイムスタンプを文字列にするだけの機能ですが、`DateTime`はオブジェクトとして日時を保持するため、計算・比較・タイムゾーンの変更などをまとめて扱えます。
文字列から日付に変換する
逆に文字列から`DateTime`オブジェクトを作りたい場合は、コンストラクタに直接文字列を渡します。
$d = new DateTime("2026-08-20");
echo $d->format("Y年m月d日");
形式が厳密に決まっている場合は`DateTime::createFromFormat`を使うと、想定外の形式を弾きやすくなり安全です。
日付を計算する
$now->modify("+3 days");
$now->modify("-1 month");
`"+3 days"`のように、人間が読める形で計算内容を指定できるのがPHPらしい特徴です。`DateInterval`クラスを使ったより厳密な計算方法もあります。
$interval = new DateInterval("P3D"); // 3日間
$now->add($interval);
2つの日付の差を求める
$start = new DateTime("2026-08-01");
$end = new DateTime("2026-08-20");
$diff = $start->diff($end);
echo $diff->days . "日間";
PHPならではの注意点
手軽な`date()`関数と、より高機能な`DateTime`クラスのどちらを使うべきか迷うことがあります。単純に表示するだけなら`date()`、日付の計算や比較、差分の取得まで行うなら`DateTime`(またはイミュータブル版の`DateTimeImmutable`)、という基準で選ぶとよいでしょう。特に`DateTime`はメソッドを呼ぶと元のオブジェクト自体が書き換わる(ミュータブル)ため、意図せず値が変わってしまうバグを避けたい場合は`DateTimeImmutable`の利用も検討する価値があります。
まとめ
PHPの日付操作は`date()`関数と`DateTime`クラスが基本です。文字列との相互変換、`modify()`や`DateInterval`を使った柔軟な計算方法、`diff()`による差分取得もあわせて覚えておきましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
PHPをもっと学びたい方には「10日でおぼえるPHP入門教室 第4版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿