バナーの表示・非表示を制御しようとしてます。
表示中と期限表示のバナー一覧を出し、「これは表示中」と「これは期限外休止中」の画像を表示させたいです。
if($view ne "3"){
if($view eq "2" && $sysdate2 <= $open || $sysdate2 >= $close){
$view_i="[これは期限外休止中!の画像ファイル名]";
}else{
$view_i="[これは表示中!の画像ファイル名]";
}
~
ここにリスト
~
}
$viewは1~3の数字で、「表示」「期限表示」「非表示」用です。
$sysdate2はサーバから取得した月日が「0123」(1月23日)等で設定。
$openと$closeには開始・終了日が「0123」(1月23日)等で入ります。
年をまたぐ形(10月30日~1月10日)で登録してみると、掲載期間なのに非掲載になってしまいます。
年をまたがなかったらこれでもいけるのですが、またぐバナーに関しては、年末まで用と年始から用の2つを登録しないといけなくなってしまいます。
どうにかして、1つのバナー登録でうまく表示する方法はありませんか?
年を含んだ値で比較すればうまくいくかもしれません。
月日だけでは、たとえば10月30日~1月10日の期間中の今日($sysdate2 = 1031)、
「$sysdate2 <= $open」は満たしませんが「$sysdate2 >= $close」は満たし、
期間外と判断されてしまいます。
あと2行目の条件文は念のため、次のように括弧( )を追加したほうがよさそうです。
if($view eq "2" && ($sysdate2 <= $open || $sysdate2 >= $close)){
また10月30日や1月10日を期間に含むのであればイコールを取り除いてください。
if($view eq "2" && ($sysdate2 < $open || $sysdate2 > $close)){
個人的には次のようにするほうが好みです。
if($view eq "2" && ($open <= $sysdate2 && $sysdate2 <= $close)){
$view_i="[これは表示中!の画像ファイル名]";
}else{
$view_i="[これは期限外休止中!の画像ファイル名]";
}
感謝。大丈夫でしょうか?(祈)
2016/11/01 21:58:11ありがとうございます。
2016/11/04 11:58:03今のところ希望通りの動作をしているようです。