日付・時間

PHP date関数を使った日付・時刻表示の基本と応用を解説

PHPでは日付や時刻の操作が頻繁に行われます。

この記事では、組み込み関数date()を使って、現在の日時を指定のフォーマットで取得する方法など、基本的な使い方と応用例を紹介します。

たとえば、Y-m-d H:i:s形式で表示する方法などを交え、PHP初心者にも分かりやすい解説を行います。

date()関数の基本構造

関数の書式と動作

PHPのdate()関数は、指定したフォーマットに従って日付や時刻を文字列として返してくれます。

基本的な書式は以下のとおりで、第一引数にフォーマット文字列を指定し、第二引数にタイムスタンプ(省略時は現在の日時)が指定できます。

<?php
// 現在の日付と時刻をフォーマットして表示する例
$formattedDate = date('Y-m-d H:i:s'); // '2023-10-05 14:20:30' のような文字列が返る
echo $formattedDate;
?>
2023-10-05 14:20:30

引数と返り値の仕様

date()関数には必ずフォーマットを指定する必要があります。

  • 第一引数:フォーマット文字列。例えば、'Y-m-d'は年-月-日の形式となります。
  • 第二引数:省略可能な整数値のタイムスタンプで、タイムゾーンの影響を受けます。省略すると、現在の日時が使用されます。

返り値は、指定されたフォーマットに沿って作成された文字列です。

以下は、引数にタイムスタンプを指定して実行する例です。

<?php
// 特定のタイムスタンプを基に日付をフォーマットする例
$timestamp = 1633414800; // 例: 2021-10-05 00:00:00 UTC相当
$formattedDate = date('Y-m-d H:i:s', $timestamp);
echo $formattedDate;
?>
2021-10-05 00:00:00

日付フォーマットの指定方法

各書式文字の意味

date()関数で使用するフォーマット文字は、各要素の日付や時刻の情報を表すために用いられます。

例えば、Yは4桁の年、mはゼロ埋めされた2桁の月を表します。

下記の項目ごとに、代表的なフォーマット文字について説明いたします。

年・月・日表記の指定

日付成分を構成する要素には、以下のようなフォーマット文字が利用できます。

  • Y:4桁の年(例:2023)
  • y:2桁の年(例:23)
  • m:ゼロ埋め済みの月(例:04)
  • n:ゼロ埋めされない月(例:4)
  • d:ゼロ埋め済みの日(例:07)
  • j:ゼロ埋めされない日(例:7)

時・分・秒表記の指定

時刻成分に関しては、以下のフォーマット文字が利用できます。

  • H:24時間形式の時(例:15)
  • h:12時間形式の時(例:03)
  • i:分(例:05)
  • s:秒(例:09)
  • aまたはA:午前/午後の表記(例:am または PM)

複合フォーマットの実例

複合的なフォーマットを利用することで、日付と時刻を含む詳細なフォーマットの文字列を作成できます。

下記のサンプルコードでは、西暦、月、日、時、分、秒を組み合わせた例を示します。

<?php
// 複合フォーマット例: '2023年04月05日 15時30分25秒'
$formattedDate = date('Y年m月d日 H時i分s秒');
echo $formattedDate;
?>
2023年04月05日 15時30分25秒

タイムゾーン設定

タイムゾーンの変更手法

PHPではタイムゾーンを正しく設定することで、意図した日時や時刻を表示できます。

タイムゾーンの変更は、php.iniファイルで設定する方法とプログラム内で設定する方法の2通りがあります。

php.iniでの設定

php.iniファイルでは、グローバルなタイムゾーン設定を以下のように記述します。

設定後、Webサーバを再起動する必要があります。

date.timezone = "Asia/Tokyo"

プログラム内での設定

プログラム内でタイムゾーンを設定する場合は、date_default_timezone_set()関数を利用します。

サンプルコードは下記の通りです。

<?php
// タイムゾーンを 'Asia/Tokyo' に設定する例
date_default_timezone_set('Asia/Tokyo');
$formattedDate = date('Y-m-d H:i:s');
echo $formattedDate;
?>
2023-10-05 14:20:30

エラー対応と注意事項

よくあるエラーケース

date()関数に関するエラーとしては、以下の点が挙げられます。

  • 誤ったフォーマット文字を使用した場合:予期しない結果が返る可能性があります。
  • 無効なタイムスタンプを指定した場合:予期せぬ日時が表示される場合があります。
  • タイムゾーンが適切に設定されていない場合:日時がズレることがあるため、環境に合わせたタイムゾーン設定が求められます。

書式指定時の留意点

date()関数を利用する際には、以下の点に注意する必要があります。

  • フォーマット文字は大文字・小文字を区別するため、正確に使用する必要があります。
  • 複雑なフォーマットを作成する際、意図しない文字列が混入しないように、フォーマット部分とリテラル部分の区別に注意してください。
  • プログラム内でタイムゾーンを設定している場合、php.iniとの整合性にも気を配ることが求められます。

以上、date()関数の基本構造、日付フォーマットの指定方法、タイムゾーン設定およびエラー対応と注意事項について解説いたしました。

まとめ

この記事では、PHPのdate()関数の基本構造、各フォーマット指定方法、タイムゾーンの設定手法やエラー対応について解説しました。

全体を通じ、PHPでの日時操作の基本が理解できる内容でした。

ぜひ自分の環境で試して、実際に活用してみてください!

関連記事

Back to top button
目次へ