こんにちは、ryohei(@ityryohei)です!

本記事では、PHPで期間を指定してページの表示を自動で切り替える方法をご紹介しています。

Webサイトを更新する中で、期間を指定してバナーやテキストを表示したい! というケースがあるかと思います。期間を指定する、というのは「何月何日~何月何日まで」というようなイメージです。例えば、夏の間であればサマーセールの宣伝を、クリスマス期間は限定のプロダクトの掲載を、などですね。

期間限定の商品やイベントというのは、短期間で大きな売り上げが見込めることがほとんどであり、企業も力を入れている場合が多いです。もし、クライアントから相談された場合は本記事でご紹介する内容を活用して、実装していただければと思います。

では、解説していきます。

date関数で現在の日時を取得する

PHPで日時を取得する方法は複数ありますが、今回はdate関数を使った方法になります。

date関数は現在の日付をフォーマットを指定して取得することができます。詳細については下記のリンク先をご参照いただければと思います。

https://www.php.net/manual/ja/function.date.php

関数の引数にフォーマットを指定するだけで簡単に現在の日時を取得することができます。

$datetime = date('Y-m-d H:i');

タイムゾーンを確認する

date関数を使用するにあたって、タイムゾーンを日本に指定する必要があります。

日本のレンタルサーバーであれば基本的に日本のタイムゾーンになっているかと思いますが、phpinfo()等でPHPの設定をご確認いただき、タイムゾーンが日本に設定されていない場合は下記を追記してタイムゾーンを上書きします。

php.iniを編集できる場合は下記の部分のタイムゾーンを修正します。

date.timezone = "Asia/Tokyo"

もし設定ファイルが触れないようであれば、実行するPHPファイルの上部に下記を追記してタイムゾーンを一時的に上書きします。

date_default_timezone_set('Asia/Tokyo');

当たり前のように日本の設定で進めていますが、もちろん日本で公開している場合は、です。公開している国に合わせて設定いただければと思います。

期間を指定してページの表示を自動で切り替える

最後に期間を指定してページの表示を自動で切り替えてみます。

サンプルとして、クリスマス期間中に表示しておく処理を書いてみます。

//現在の日時を取得
$datetime = date('Y-m-d H:i');

if($datetime >= '2019-12-24 00:00' && $datetime < '2019-12-25 23:59'):
  //2019年12月24日の0時~2019年12月25日の23時59分まで表示する内容を記述
else:
  //期間外で表示する内容を記述
endif;

上記のように記述することで、期間を指定してページの表示を自動で切り替えることができるようになります。

最後に

いかがでしたでしょうか。

期間を指定して表示を切り替える処理は多くの場面で使用することができます。実装方法を知っておくことでクライアントに提案できることがあるかもしれないので、どこかでお役立ていただければ幸いです。

以上、PHPで期間を指定してページの表示を自動で切り替える方法のご紹介でした!