PHP DateTime::formatメソッドの使い方

この記事のポイント

PHPで日付や時刻を扱う際に欠かせないDateTime::formatメソッドについて、基本から応用まで分かりやすく解説していきます。

  • 基本的な構文と主要なフォーマット指定子の種類と使い分け
  • よく使われる日付フォーマットパターンの具体的な実装方法
  • 実際の開発現場で活用できる8つの実践的なコード例とその応用

これらのポイントを押さえることで、日付処理を確実にマスターできるようになります。

目次

DateTime::formatメソッドとは?

DateTime::formatメソッドは、日付や時刻のデータを指定した形式の文字列に変換するメソッドです。DateTimeオブジェクトが持つ日付情報を、年月日や時分秒といったさまざまな形式で表示したい場合に使用します。

このメソッドにより、データベースから取得した日付データをウェブサイトで見やすく表示したり、ログファイルに記録する際の形式を統一したりできます。フォーマット指定子と呼ばれる特別な文字を使って、出力したい形式を細かく制御することが可能で、国際化対応のアプリケーション開発でも重要な役割を果たしています。

【関連】
PHPをもっと詳しく学ぶならpaizaラーニング

基本構文

DateTime::formatメソッドの基本的な構文は、DateTimeオブジェクトに対してformat()メソッドを呼び出し、引数に出力形式を指定する形となります。以下のコード例で基本的な使い方を確認していきましょう。

<?php $date = new DateTime(); echo $date->format('Y-m-d H:i:s'); ?>

出力結果(例)

2025-08-14 14:30:25

※このページ内のコードの出力結果の一部で、実行した時刻により変動するものがあります。また、時刻はUTC形式で計算されるため、日本時間での計算結果と異なる場合があります

<?php $date = new DateTime('2025-12-25'); echo $date->format('Y年m月d日'); ?>

出力結果

2025年12月25日

実用例

ここからは、実際の開発現場でよく使われるDateTime::formatメソッドの具体的な使用例を紹介していきます。各例では異なるフォーマット指定子を使い、幅広い用途に対応した日付表示方法を学べます。

これらのサンプルコードを参考にすることで、ウェブサイトでの日付表示からログファイルの記録まで、幅広い場面でDateTime::formatメソッドを活用できるようになるでしょう。フォーマット指定子の組み合わせ方や、実際の出力結果を通じて、より実践的な日付処理のスキルを身に付けていきます。

現在日時の表示

現在の日付と時刻を取得し、見やすい形式で表示する基本的な例です。ウェブサイトの更新時刻やログの記録時刻によく使用されます。

<?php $now = new DateTime(); echo 'ネコの誕生日: ' . $now->format('Y年m月d日 H時i分'); ?>

出力結果(例)

ネコの誕生日: 2025年08月14日 14時30分

年月日のみの表示

時刻情報を除いて、年月日のみを表示したい場合の例です。記事の投稿日やイベントの開催日などで頻繁に使用されます。

<?php $date = new DateTime('2025-03-10'); echo 'イヌの散歩日: ' . $date->format('Y/m/d'); ?>

出力結果

イヌの散歩日: 2025/03/10

時分秒のみの表示

日付情報を除いて、時刻のみを表示する例です。営業時間の表示やスケジュール管理で活用できます。

<?php $time = new DateTime('14:25:30'); echo 'ウサギの食事時間: ' . $time->format('H:i:s'); ?>

出力結果

ウサギの食事時間: 14:25:30

カスタム形式での日付表示

区切り文字や表示順序を自由にカスタマイズした日付表示の例です。デザインに合わせた柔軟な表示が可能になります。

<?php $date = new DateTime('2025-07-20'); echo 'ハムスターの検診: ' . $date->format('d-m-Y'); ?>

出力結果

ハムスターの検診: 20-07-2025

曜日を含む日付表示

日付と合わせて曜日も表示する例です。スケジュール表示やカレンダー機能で重宝します。

<?php $date = new DateTime('2025-05-15'); echo 'トリの飛行訓練: ' . $date->format('Y年m月d日 (l)'); ?>

出力結果

トリの飛行訓練: 2025年05月15日 (Thursday)

月名を英語で表示

月を数字ではなく英語の月名で表示する例です。国際的なウェブサイトや英語圏向けのアプリケーションで使用されます。

<?php $date = new DateTime('2025-09-08'); echo 'パンダの竹配給: ' . $date->format('F j, Y'); ?>

出力結果

パンダの竹配給: September 8, 2025

タイムスタンプの変換

UNIXタイムスタンプから読みやすい日付形式に変換する例です。データベースやAPIから取得したタイムスタンプの表示で活用できます。

<?php $timestamp = 1735689600; $date = new DateTime(); $date->setTimestamp($timestamp); echo 'ゾウの水浴び: ' . $date->format('Y-m-d H:i'); ?>

出力結果

ゾウの水浴び: 2025-01-01 00:00

複数言語対応の日付表示

日本語の曜日や月名を含めた、より親しみやすい日付表示の例です。日本のユーザー向けアプリケーションで使用されます。

<?php $date = new DateTime('2025-11-23'); $weekdays = ['日', '月', '火', '水', '木', '金', '土']; $weekday = $weekdays[$date->format('w')]; echo 'ライオンの昼寝: ' . $date->format('Y年n月j日') . '(' . $weekday . ')'; ?>

出力結果

ライオンの昼寝: 2025年11月23日(日)

まとめ

DateTime::formatメソッドは、日付と時刻の表示において非常に重要なメソッドです。基本的な構文から応用的な使い方まで、さまざまな場面で活用できる柔軟性の高い機能を提供しています。

DateTime::formatメソッドの活躍する場面

  • ウェブサイトでの日付表示等、ユーザーに分かりやすい形式での情報提供
  • データベースから取得した日付情報に対して、アプリケーションの要件に合わせた柔軟な整形
  • ログファイルやレポート作成時に、統一された形式での日付記録を実現

重要なポイント

  • フォーマット指定子の組み合わせにより、無数の表示パターンを作成可能
  • 国際化対応のアプリケーション開発において、地域に応じた日付表示の実装
  • エラーハンドリングと組み合わせることで、より堅牢な日付処理システムの構築

DateTime::formatメソッドをマスターすることで、PHPにおける日付処理の幅が大きく広がり、より使いやすいアプリケーションの開発が可能になるでしょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. PHPのリファレンス記事一覧
  4. PHP DateTime::formatメソッドの使い方