- ベストアンサー
PHPで指定した期間だけ表示する方法
- PHPを使用して、指定した期間だけコンテンツを表示する方法を解説します。
- 通常、指定した日付だけを表示する場合は、if文を使用して個別に日付を指定しますが、30日間の場合には手間がかかります。
- そこで、毎年4月1日から4月30日の間だけコンテンツを表示させる方法を紹介します。それ以外の期間ではコンテンツを非表示にします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>1ヶ月もなのですが、基本的には◯月◯日~◯月◯日までと自由に期限を決めたいと思っています。 >その決めた期間中のみ表示するといったようなことです でしたら日付を比較ができる Unix タイムスタンプに変換して 以下のようにしてはいかがでしょうか $now = time(); $start = mktime( 0, 0, 0, 4, 1,2011); // 2011年4月1日 0時0分0秒から $end = mktime( 0, 0, 0, 5, 1,2011); // 2011年5月1日 0時0分0秒まで if($now >= $start && $now < $end){ echo 'あいうえお'; } time (PHP 4, PHP 5) time — 現在の Unix タイムスタンプを返す http://jp.php.net/manual/ja/function.time.php mktime (PHP 4, PHP 5) mktime — 日付を Unix のタイムスタンプとして取得する http://jp.php.net/manual/ja/function.mktime.php
その他の回答 (3)
- memphis
- ベストアンサー率40% (975/2395)
1ヶ月分なら、月だけを見れば良い。それと文字の比較部分も直した方がいい。 $month= date("m"); if ($month === '04'){ echo 'あいうえお'; }
お礼
どうもありがとうございました。
補足
ご回答ありがとうございます。 質問の文章が悪かったようです。分かりにくい文章でお手数をおかけしました。 1ヶ月もなのですが、基本的には◯月◯日~◯月◯日までと自由に期限を決めたいと思っています。 その決めた期間中のみ表示するといったようなことです。
- saintandre
- ベストアンサー率31% (194/607)
とりあえず変更箇所が少ないものを $tomonth= date("m"); //月だけを求める if ($tomonth == '04'){ echo 'あいうえお'; } date (PHP 4, PHP 5) date — ローカルの日付/時刻を書式化する http://jp.php.net/manual/ja/function.date.php
お礼
どうもありがとうございました。
補足
ご回答ありがとうございます。 質問の文章が悪かったようです。分かりにくい文章でお手数をおかけしました。 1ヶ月もなのですが、基本的には◯月◯日~◯月◯日までと自由に期限を決めたいと思っています。 その決めた期間中のみ表示するといったようなことです。
- askaaska
- ベストアンサー率35% (1455/4149)
< や > で大小判定すればいいと思うけど。
お礼
どうもありがとうございました。
補足
比較演算子 や 理演算子 あたりを使えば出来るんですよね。 「月日を調べて、それが指定した期間内であれば表示。それ以外であれば非表示。」といった命令になるとおもうのですが、そのソースが書けません。 まず、指定する期間を書けばいいのでしょうか。 $day1 = $day2 = $today= date("md"); とした場合、指定日の表現がわかりません。 4月1日を指定したい場合、1April ではなさそうですよね。 次に if ($daiy1 < $today || $day2 > $today){ echo 'あいうえお'; } みたいな感じなんでしょうか。 無茶苦茶かもしれませんが、わたくしの頑張った限界です。
お礼
ご回答ありがとうございます。早々試し、できました。 本当にどうもありがとうございました。 その他のご回答頂いた皆さんもありがとうございました。ゴールを迎えられました。 今回は、毎年くり替えしたいので下記のように修正しました。 <?php $now = time(); $start = mktime( 0, 0, 0, 4, 25); /*4月25日から始まり*/ $end = mktime( 0, 0, 0, 4, 27); /*4月26日で終了する*/ if($now >= $start && $now < $end){ echo 'abcd'; } ?>