時間によって表示内容が変わるページ

トップ > PHP入門 > 時間によって表示内容が変わるページ

目次

広告

プログラムの概要

date 関数を使用すれば、現在の時刻を取得することができます。また、if を使用すれば、取得した時刻(数値)によって処理を分岐させることができます。

これらを利用すれば、時間によって表示内容が変わるページを作成することができます。

プログラムの概要

時間によって表示内容が変わるページ

時間によって表示内容が変わるページは、以下のようになります。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>挨拶表示</title>
</head>
<body>

<?php if (date("H") >= 6 and date("H") <= 11) : ?>
  <!--6時~11時のメッセージ-->
  <p>おはようございます。</p>
  <p>今日も一日頑張りましょう。</p>
<?php elseif (date("H") >= 12 and date("H") <= 17) : ?>
  <!--12時~17時のメッセージ-->
  <p>こんにちは。</p>
  <p>今日は良い天気です。</p>
<?php else : ?>
  <!--それ以外(18時~5時)のメッセージ-->
  <p>こんばんは。</p>
  <p>今日もお疲れさまでした。</p>
<?php endif; ?>

</body>
</html>

date 関数に H という文字を渡すと、現在の時刻を取得できます。あとはこれを比較するだけです。今回は

の3パターンにしています。PHPでは if で条件分岐する際に「時刻が6~11ならば」のように範囲を指定した条件は指定できません。このような条件は「時刻が6以上、かつ時刻が11以下ならば」のように、AND条件を使用します。
18時~5時の場合も厳密に条件を書くことができますが、今回は else を使用しています。

なお、時刻を比較してメッセージを表示する部分は、

<?php

if (date("H") >= 6 and date("H") <= 11) {
  echo "<p>おはようございます。</p>\n";
  echo "<p>今日も一日頑張りましょう。</p>\n";
} elseif (date("H") >= 12 and date("H") <= 17) {
  echo "<p>こんにちは。</p>\n";
  echo "<p>今日は良い天気です。</p>\n";
} else {
  echo "<p>こんばんは。</p>\n";
  echo "<p>今日もお疲れさまでした。</p>\n";
}

?>

このように echo で表示しても問題ありません。自分で解りやすいと思う書き方にしてください。

この仕組みを利用すれば、例えば「12時~15時の間だけ、セールス情報が表示される」といったページを作成することもできます。