匿名質問者

javascriptで月日で画像表示を変えたい。


現在、下記javascriptを利用して季節で画像を入れ替えるようにしています。
これをもう少し細かく日付で画像を入れ替えることは出来ないでしょうか?
(1/1~2/5までは1.jpg、2/6~3/19は2.jpgのような感じ)
javascriptで難しいようでしたらCGI(perl)でのSSI表示でも構いません。
何か方法があれは教えてください。

----------------------------------------
<script type="text/javascript">
<!--
function image4() {
dd = new Date();
mm = dd.getMonth()+1;
if ((mm == 3) || (mm == 4) || (mm == 5)) { s = 1; }
if ((mm == 6) || (mm == 7) || (mm == 8)) { s = 2; }
if ((mm == 9) || (mm == 10) || (mm == 11)) { s = 3; }
if ((mm == 12) || (mm == 1) || (mm == 2)) { s = 4; }
document.writeln("<img src=\"./image/top_img_"+s+".jpg\">");

}
//-->
</script>

<script type="text/javascript">image4();</script>

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/06/05 22:15:04

回答2件)

匿名回答1号 No.1

 こんな感じでどうでしょうか。

function image4() {
    dd = new Date();
    mm = dd.getMonth()+1;
    dt = dd.getDate();
    if ((mm == 1)||(mm == 2 && dt <= 5))             {s=1;}
    if ((mm == 2 && dt >= 6)||(mm == 3 && dt <= 19)) {s=2;}
    // ...
    document.writeln("<img src=\"./image/top_img_"+s+".jpg\">");
}
匿名回答2号 No.2

こんな感じでどうでしょう。
#都合上、結果はalertで出すようにしてます。
http://jsfiddle.net/MC3UJ/

var period = {
    "1/1": "1",
        "2/6": "2",
        "3/16": "3",
        "5/31": "4",
        "6/2": "5"
};

var dd = new Date();
var year = dd.getFullYear();
dd = dd.getTime();
var list = [];
for (var d in period) {
    list.push({
        d: Date.parse(year + "/" + d),
        s: period[d]
    });
}
list.sort(function (a, b) {
    return b.d - a.d;
});

var s = "";
for (var i = 0; i < list.length; i++) {
    if (dd >= list[i].d) {
        s = list[i].s;
        break;
    }
}
document.writeln("<img src=\"./image/top_img_" + s + ".jpg\">");

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

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

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

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

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