PHPによる日時比較!基本から応用まで5つのステップ

PHPによる日時比較の基本から応用までを5つのステップで解説する記事のサムネイル画像 PHP
この記事は約6分で読めます。

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

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

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

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

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

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

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

はじめに

この記事を読めばPHPで日時を比較する方法が身につきます。

PHPはウェブ開発で広く使われる言語ですが、日時の比較はその中でも特に頻繁に遭遇するタスクです。

ここではその方法を初心者にも分かりやすく解説します。

まずPHPとその基本について学び、次に日時の取得と比較の方法をマスターしましょう。

最後には応用的な日時比較の方法まで身につけることができます。

●PHPとは

PHPは”PHP: Hypertext Preprocessor”の略で、サーバーサイドで実行されるスクリプト言語の一つです。ウェブページの動的な部分を制御するために広く使われています。

例えば、ユーザーからの入力を受け取ったり、データベースから情報を取得したりするなど、様々な処理が可能です。

○PHPの基本

PHPのコードは <?php ?> の中に記述します。

これはPHPの開始タグと終了タグで、この中にプログラムの命令を書いていきます。

<?php
// ここにコードを書く
?>

このように、PHPの基本的な文法を理解することで、後の日時の取得や比較などの操作に進むことができます。

●PHPでの日時の取得方法

PHPで日時を取得するにはdate関数を使用します。

この関数は現在の日時を取得するのに役立ちます。

○サンプルコード1:現在の日時を取得する

このコードではdate関数を使って現在の日時を取得しています。

“Y-m-d H:i:s”は日時のフォーマットを指定する文字列で、それぞれ年-月-日 時:分:秒を表しています。

取得した日時は$nowに格納され、echo関数で出力されます。

<?php
// 現在の日時を取得
$now = date("Y-m-d H:i:s");
echo $now;
?>

○サンプルコード2:特定の日時を取得する

特定の日時を取得するにはDateTimeクラスを使用します。

このコードではDateTimeクラスを使って特定の日時を取得しています。

ここでは2023年5月1日の12時30分を取得しています。取得した日時は$datetimeに格納され、formatメソッドで指定したフォーマットで出力されます。

<?php
// 特定の日時を取得
$datetime = new DateTime('2023-05-01 12:30:00');
echo $datetime->format('Y-m-d H:i:s');
?>

●PHPでの日時の比較方法

PHPで日時を比較するには、DateTimeクラスのオブジェクト間で比較演算子を使います。

○サンプルコード3:2つの日時を比較する

このコードではDateTimeクラスを使って2つの日時を比較しています。

比較対象は2023年5月1日の12時30分と2023年6月1日の12時30分です。

この例では<演算子を使ってdatetime1がdatetime2よりも早いかどうかを比較しています。

<?php
// 日時の比較
$datetime1 = new DateTime('2023-05-01 12:30:00');
$datetime2 = new DateTime('2023-06-01 12:30:00');

if ($datetime1 < $datetime2) {
    echo 'datetime1 is earlier than datetime2.';
} else {
    echo 'datetime1 is not earlier than datetime2.';
}
?>

●PHPでの日時比較の応用例

ここでは、PHPでの日時比較を応用した例を見ていきましょう。

過去や未来の特定の日時と現在の日時を比較する方法を具体的に示します。

○サンプルコード4:過去のある日時と現在を比較する

このコードではDateTimeクラスを使って2022年5月1日の12時30分と現在の日時を比較しています。

引数を指定せずにDateTimeクラスをインスタンス化すると、現在の日時が取得されます。

この例では<演算子を使ってdatetime1が現在よりも早い(過去)かどうかを比較しています。

<?php
// 過去の日時と現在を比較
$datetime1 = new DateTime('2022-05-01 12:30:00');
$datetime2 = new DateTime();

if ($datetime1 < $datetime2) {
    echo 'datetime1は現在より過去です。';
} else {
    echo 'datetime1は現在より未来です。';
}
?>

○サンプルコード5:未来のある日時と現在を比較する

このコードではDateTimeクラスを使って2024年5月1日の12時30分と現在の日時を比較しています。

この例では>演算子を使ってdatetime1が現在よりも遅い(未来)かどうかを比較しています。

<?php
// 未来の日時と現在を比較
$datetime1 = new DateTime('2024-05-01 12:30:00');
$datetime2 = new DateTime();

if ($datetime1 > $datetime2) {
    echo 'datetime1は現在より未来です。';
} else {
    echo 'datetime1は現在より過去です。';
}
?>

このコードではDateTimeクラスを使って2024年5月1日の12時30分と現在の日時を比較しています。

この例では>演算子を使ってdatetime1が現在よりも遅い(未来)かどうかを比較しています。

次に、日時の取扱いで注意すべき点とその対処法について説明します。

●注意点と対処法

PHPで日時を扱う際には、日時のフォーマットやタイムゾーンの設定など、様々な要素に注意が必要です。

○日時のフォーマットについて

PHPではdate関数やDateTimeクラスのformatメソッドを使用して、日時のフォーマットを自由に指定できます。

年を表すには”Y”、月を表すには”m”、日を表すには”d”、時を表すには”H”、分を表すには”i”、秒を表すには”s”を使います。

これらを組み合わせて、例えば”Y-m-d H:i:s”のように指定すれば、”2023-05-18 12:30:00″のようなフォーマットで日時を表現できます。

○タイムゾーンの設定について

タイムゾーンを正しく設定していないと、意図した時間と異なる時間が表示される可能性があります。

PHPではdate_default_timezone_set関数でタイムゾーンを設定できます。

例えば、日本のタイムゾーンを設定するにはdate_default_timezone_set('Asia/Tokyo')と指定します。

それでは、最後に全体をまとめてみましょう。

まとめ

この記事では、PHPで日時を取得、比較する方法について詳しく説明しました。

また、日時のフォーマットやタイムゾーン設定など、日時を扱う際の注意点とその対処法も解説しました。

これらの知識を活かして、日時を自由自在に操作してみてください。