- 締切済み
ちょっと変わった自動更新
10分ごとに画像が変わるところがあり、そのアドレスは 8月14日11時0分だと http://aaa.bbb/ccc/08141100.gif となっています。 ただし、その画像更新自体が各2分後(00分のデータなら02分、10分のデータなら12分・・・)まで反映されておいません。そのため、2分間はひとつ前のデータを表示する必要があります。 var now = new Date(); //時間取得 var month = now.getMonth()+1; //月 var day = now.getDate(); //日 var hour = now.getHours(); //時 var min = now.getMinutes(); //分 //二ケタ表示 if(month < 10) { month = "0" + month; } if(day < 10) { day = "0" + day; } if(hour < 10) { hour = "0" + hour; } if(min < 10) { min = "0" + min; } location.href = "http://aaa.bbb/ccc/" + month + day + hour + min + ".gif"; 上記の方法で現在時刻の画像が表示されてくれると思うのですが(違ったら指摘お願いします) ifで03分~12分なら画像のアドレス末尾を00.gifにするーとかだと、03-12、13-22、23-32、33-42、43-52、53-02の6つifを作る他ないのでしょうか? また、自動更新に関して「各2分に更新する」といった方法がわかりません。 何かアドバイスいただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- talepanda
- ベストアンサー率58% (45/77)
function f(){ var now = new Date(); //時間取得 var month = now.getMonth()+1; //月 var day = now.getDate(); //日 var hour = now.getHours(); //時 var min = now.getMinutes(); //分 //二ケタ表示 if(month < 10) { month = "0" + month; } if(day < 10) { day = "0" + day; } if(hour < 10) { hour = "0" + hour; } //if(min < 10) { min = "0" + min; } min = Math.floor((min-3)/10)+(min<3?6:0)+"0"; location.href = "http://aaa.bbb/ccc/" + month + day + hour + min + ".gif"; } どっかで(onloadとか) window.setInterval(f, 1000*60*2)
- talepanda
- ベストアンサー率58% (45/77)
>ifで03分~12分なら画像のアドレス末尾を00.gifにするーとかだと、03-12、13-22、23-32、33-42、43-52、53-02の6つifを作る他ないのでしょうか? このとおりに変換するなら、javascriptの場合、%がマイナスを返すので一部非線形だけど、 Math.floor((x-3)/10)+(x<3?6:0)+"0"; でいいかと。 >Math.floor((x-3)/10)+(x<3?6:0)+"0"; window.setInterval(更新する関数, 1000*60*2)
補足
すみません・・どのタイミングで入れればいいのでしょうか?? 質問のコードに混ぜて答えてもらえると嬉しいです。