phpを使って、

期間限定メッセージを表示するコードを教えてください。

例:

1)5月9日以前 通常のメッセージ
2)5月9日0時~5月10日0時まで キャンペーン開始のメッセージ
3)5月10日0時~5月11日0時まで キャンペーン終了のメッセージ
4)5月11日以降 通常のメッセージ

こんな感じで、3パターンのメッセージを
使い分けたいと思っています。

どうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/05/12 16:10:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.2

回答回数2625ベストアンサー獲得回数1149

ポイント35pt

下記のような具合です

<?php
$now = date('ymd');
if ( $now >= 110509 && $now < 110510 ) {
    echo 'キャンペーン開始です!';
} elseif ( $now >= 110510 && $now < 110511 ) {
    echo 'キャンペーン終了です!';
} else {
    echo '通常メッセージ!';
}

上記は日付での判定なので

$nowには年下二桁+月二桁+日二桁の並びの数値がはいりますが、条件に応じて下記のような具合にしていけます

時間までなら

$now = date('ymdH');

分までなら

$now = date('ymdHi');

秒までなら

$now = date('ymdHis');

id:pitagora

windofjulyさん、ありがとうございます。

時間までの判定をしたかったので、

補足情報もとっても助かります。

メッセージのところにHTMLで装飾したものを入れて

みたいと思っているので、チャレンジしてみます。

丁寧なご返信に感謝です。

2011/05/05 16:57:32

その他の回答1件)

id:asuka645 No.1

回答回数856ベストアンサー獲得回数97

ポイント35pt

こんな感じになります。

表示したいメッセージは配列 $msg に入れてください。HTMLタグを入れることもできます。

ご質問の日本語文からは以下・未満の違いが曖昧でしたので、プログラムの不等号記号から境目の時刻を読み取るようにお願いします。


<?php
//この配列を適宜変更してください
$msg = array(
'',
'1)5月9日以前 通常のメッセージ',
'2)5月9日0時~5月10日0時まで キャンペーン開始のメッセージ',
'3)5月10日0時~5月11日0時まで キャンペーン終了のメッセージ',
'4)5月11日以降 通常のメッセージ'
);

$ti = time();    //現在時刻
if ($ti < mktime(0, 0, 0, 5, 9, 2011))          echo $msg[1];
else if ($ti >= mktime(0, 0, 0, 5, 9, 2011) && $ti < mktime(0, 0, 0, 5, 10, 2011))     echo $msg[2];
else if ($ti >= mktime(0, 0, 0, 5, 10, 2011) && $ti < mktime(0, 0, 0, 5, 11, 2011))     echo $msg[3];
else if ($ti >= mktime(0, 0, 0, 5, 11, 2011))   echo $msg[3];
?>
id:pitagora

asuka645さん、ありがとうございます。

とっても参考になります。

こういう風に配列を使ってもできるんですね~。

目から鱗でした。感謝です。

2011/05/05 16:55:30
id:windofjuly No.2

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

ポイント35pt

下記のような具合です

<?php
$now = date('ymd');
if ( $now >= 110509 && $now < 110510 ) {
    echo 'キャンペーン開始です!';
} elseif ( $now >= 110510 && $now < 110511 ) {
    echo 'キャンペーン終了です!';
} else {
    echo '通常メッセージ!';
}

上記は日付での判定なので

$nowには年下二桁+月二桁+日二桁の並びの数値がはいりますが、条件に応じて下記のような具合にしていけます

時間までなら

$now = date('ymdH');

分までなら

$now = date('ymdHi');

秒までなら

$now = date('ymdHis');

id:pitagora

windofjulyさん、ありがとうございます。

時間までの判定をしたかったので、

補足情報もとっても助かります。

メッセージのところにHTMLで装飾したものを入れて

みたいと思っているので、チャレンジしてみます。

丁寧なご返信に感謝です。

2011/05/05 16:57:32

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません