PHPで時間を美しくフォーマットする5つの方法

PHPのコードが表示された画面、背景にはクロックのイメージ PHP
この記事は約4分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読むことで、PHPで時間を扱う際の基本から応用までを理解し、さらに美しく効率的な時間フォーマットを作成することができるようになります。

●PHPと時間フォーマットの関係

時間はプログラミングの世界で非常に重要な要素です。ウェブアプリケーションでは、投稿時間の表示、時間による条件分岐、スケジュール管理など、さまざまな場面で時間の操作が必要になります。

ここでは、そのような時間の操作をPHPでどのように行うのか、その基本的な方法を紹介します。

●基本的な時間のフォーマット方法

○サンプルコード1:現在時刻の取得

PHPで現在の日時を取得する一番簡単な方法は、date関数を使用することです。

このコードでは、現在の日時を”Y-m-d H:i:s”の形式で出力しています。

<?php
echo date("Y-m-d H:i:s");
?>

この例では、”Y-m-d H:i:s”というフォーマットで現在の日時を出力しています。

“Y”は4桁の年、”m”は2桁の月、”d”は2桁の日、”H”は24時間制の2桁の時間、”i”は2桁の分、”s”は2桁の秒をそれぞれ表しています。

○サンプルコード2:特定の日時のフォーマット

特定の日時をフォーマットするには、DateTimeクラスを使います。

このコードでは、特定の日時(2023年5月28日15時30分)を”Y年m月d日 H時i分”の形式で出力しています。

<?php
$date = new DateTime('2023-05-28 15:30:00');
echo $date->format('Y年m月d日 H時i分');
?>

この例では、新たにDateTimeオブジェクトを生成し、そのオブジェクトのformatメソッドを使って特定の日時をフォーマットしています。

●時間フォーマットの応用例

○サンプルコード3:特定のフォーマットで時間を出力

特定の形式で時間を出力するには、date関数とフォーマット文字列を組み合わせます。

このコードでは、現在の時間を”Y年m月d日 H時i分”の形式で出力しています。

<?php
echo date("Y年m月d日 H時i分");
?>

この例では、”Y年m月d日 H時i分”というフォーマットで現在の時間を出力しています。

このようにフォーマットを工夫することで、さまざまな形式で時間を表示することが可能になります。

○サンプルコード4:時差の計算

2つの日時の差を計算するには、DateTimeクラスとDateIntervalクラスを使います。

このコードでは、2つの日時(2023年5月28日と2023年6月28日)の間の日数を計算しています。

<?php
$date1 = new DateTime('2023-05-28');
$date2 = new DateTime('2023-06-28');
$interval = $date1->diff($date2);
echo $interval->format('%a日');
?>

この例では、DateTimeオブジェクトのdiffメソッドを使って2つの日時の差をDateIntervalオブジェクトとして取得し、その間の日数を出力しています。

○サンプルコード5:時刻の比較

2つの時刻を比較するには、DateTimeクラスを使用します。

このコードでは、2つの時刻(15:30と16:30)を比較して、どちらが後の時刻かを判定しています。

<?php
$time1 = new DateTime('15:30');
$time2 = new DateTime('16:30');
if ($time1 < $time2) {
    echo "時間1が時間2よりも前です";
} else {
    echo "時間1が時間2よりも後です";
}
?>

この例では、2つのDateTimeオブジェクトを比較して、どちらが後の時間かを判定しています。

まとめ

本記事では、PHPでの時間のフォーマットについて詳しく解説しました。

フォーマット文字列を使えば、日時や時間を自由な形式で表示することができます。

また、DateTimeクラスとDateIntervalクラスを使えば、日時の計算や比較も可能になります。

これらの知識を活用して、自分のプログラムに最適な時間の表示や計算を実装してみてください。