• ベストアンサー

期間ごとに画像表示を切り替える方法

ホームページ上の画像が、一定期間ごとに自動的に切り替わるような方法はありますでしょうか。 "期間ごと"とは、例えば、 1月1日~1月31日までは画像1を表示、 2月1日~2月28日までは画像2を表示… という感じです。 ネット上では、 特定の日に画像を表示させる方法(1月1日に画像を表示させる等)や、 時間ごとに画像を表示させる方法などを見つけましたが、 この方法をそのまま使用して目的の機能を満たそうとすると 非常に記述が長く、細かくなってしまうと思います。 比較的簡潔な記述でこれを満たす方法がございましたら 教えて頂けませんでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • sr-ki
  • ベストアンサー率66% (6/9)
回答No.4

月ごとにかえるということではなかったんですね^^;すみません ご希望の内容なら、PHPの場合は以下の要領で。 期間によって条件を指定してそれぞれ表示する画像を指定してやればOKです。 if()のカッコ内が条件を指定している部分です。 どの条件にも該当しない場合はこの部分は表示されません。 <?php $date = date('nd'); //今日の日付 if($date >= 109 && $date <= 125) { //↑今日が1月9日(109)以降(以上)で、且つ1月25日(125)以前(以下)の場合 echo '<img src="aaaa.jpg" width="500" height="200" alt="画像a" />'; } elseif($date >= 905 && $date <= 1005) { //↑今日が9月5日(905)以降(以上)で、且つ10月5日(1005)以前(以下)の場合 echo '<img src="bbbb.jpg" width="500" height="300" alt="画像b" />'; } elseif($date >= 1220 || $date <= 102) { //↑今日が12月20日(1220)以降(以上)か、1月2日以前(以下)の場合 //↑年またぎの場合は書き方が少し変わるので注意 echo '<img src="cccc.jpg" width="500" height="400" alt="画像c" />'; } ?>

gksu
質問者

お礼

ご回答ありがとうございました!

その他の回答 (3)

  • sr-ki
  • ベストアンサー率66% (6/9)
回答No.3

以下のようなPHPを使った方法はいかがでしょう? javascriptでも可能ですが、お使いのサーバーでPHPが使えるようならPHPの方が良いと思います。(javascriptで出力する部分は検索エンジンのロボットが読んでくれないなどのデメリットがあります) 画像サイズや代替テキストの内容はどの月も同じで、画像ファイル名を月に対応した連番に出来て、毎月画像を変えるということならこんな感じです。 画像ファイル名:"hoge_1.jpg"~"hoge_12.jpg" <?php $month = date('n'); ?> <img src="hoge_<?php echo $month; ?>.jpg" width="500" height="200" alt="代替テキスト" /> 画像ファイル名やサイズ、代替テキストがバラバラということであれば、こんな感じ <?php $month = date('n'); $img['1'] = '<img src="itigatsu.jpg" width="500" height="200" alt="一月の画像" />' $img['2'] = '<img src="nigatsu.jpg" width="500" height="300" alt="二月の画像" />' $img['3'] = '<img src="sangatsu.jpg" width="500" height="400" alt="三月の画像" />'  ↓省略 $img['12'] = '<img src="jyuunigatsu.jpg" width="500" height="100" alt="一二月の画像" />' ?> <?php echo $img[$month]; ?>

gksu
質問者

お礼

うわーっ! すいません! 誤解を招くような質問の書き方をしてしまいまして! 以下、回答No.1様~回答No.3様までのご回答と合わせて補足説明致します。 私の最終目的は、"月ごとに画像を表示"ではありません。 質問の際には、"例"として、あの期間を示しただけです。 最終目的は、"1月9日~1月25日までの期間にこの画像を表示"みたいな感じであり、 この期間は、月とは関係無く(月の中に収まる時も、月をまたぐ時もある)、 その期間も(約2週間程度になると思いますが)まちまちの長さの期間です。 期間同士も、必ずしも連続していません。 それと、環境はWindows Vistaです。 ご回答ありがとうございました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

http://e-html.aofp.net/java_info/j_sample_5_1.html こう言ったことでしょうか?

gksu
質問者

お礼

ご回答ありがとうございました。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

javascriptで12か月分記述する。 でも、javascriptでテキストの書き換えを禁止している場合は使えない。 確実なのはshell scriptでサーバー側に任せること。 #/bin/sh 略 echo 'HTTP/1.1 200 OK' echo 'Pragma: no-cache' echo 'Cache-Control: no-cache' echo 'Expires: -1' echo 'Last-Modified: $DATE echo 'Accept-Ranges: bytes' echo 'Content-Length: 3053' echo 'Content-type: image/gif' echo cat $IMG とか・・

gksu
質問者

お礼

ご回答ありがとうございました。

関連するQ&A