- ベストアンサー
JAVAscriptで時間更新の制御
いつもお世話になっております。 また教えていただきたく思いましたのでよろしくお願いいたします。 JAVAscriptで毎日時間指定で、画像を更新するようなものがあればお教えいただけますでしょうか? パーッと検索したんですが、出てこなかったのでぜひよろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
書いてるスクリプトにミスがあるかもしれませんが、「動かない」だけだと対処しようがないです。 エラーがでる?とか 画像が不明?とか、実際に使っているソースを貼るとか、何からの情報が無いと対処不能です。m(__)m 「私の画像の呼び出し方法が間違っているのですかね?」 実際の状態を見れない限りは、なんともこらえられないです。
その他の回答 (3)
- arexis
- ベストアンサー率66% (66/99)
説明に無い事は想像するしかないので2枚交換にしました。 『休日等も考慮に入れて』についても、質問者さんの言う所の『休日』と言う物が 土日を指すのか、祝祭日まで含めた物なのか、店の特定の休業日まで含めた物なのか? も書いてもらわないと想像になります。。 あと、画像の内容(多分文章ですよね?)、これについてもわからないので、 『次回発送日○○日』と言う画像だと勝手に想像しておきます。 このサンプルは基本で土日が休みです。 それ以外の祝祭日、公休日などは自分でカレンダーを見て yasumi配列に入れ込んでください。 これなら盆や年末年始休みなど不特定の休みを追加するのにも便利でしょう。 <script type="text/javascript"> /* 特定曜日以外の 祝祭日・公休日を 月日の4桁で '' 囲んで配列に入れる */ yasumi = new Array('0114','0210','0320'); today = (new Date()).getTime(); limit = 0; GetNext(); /* 画像なら */ if(Day) document.write('<img src="./',Day,'.gif" >'); /* 文字なら */ if(Day) document.write('次回発送日',nextday); function GetNext(){ /* 10時にするなら 3600*14*1000 真ん中の数字が 24-指定時間 */ var tmp = new Date( today + 3600*13*1000); Year = tmp.getFullYear(); Month = tmp.getMonth() + 1; if( Month < 10 ){ Month = '0' + Month; } Day = tmp.getDate(); if( Day < 10 ){ Day = '0' + Day; } Week = tmp.getDay(); tmpday = '' + Month + Day; /* 特定日曜が Week==0 月曜がWeek==1 休みの曜日を設定 */ if( ( yasumi.toString() ).match( tmpday ) || Week == 0 || Week == 6 ){ today = today + 3600*24*1000; limit++; if(limit < 20){ GetNext(); }else{ Day = undefined; } }else{ nextday = Year + '/' + Month + '/' + Day; } } </script> 11時を過ぎると、次の営業日の日付の番号が呼ばれるようになります。 今が7日の昼12時なら 08 と言う番号の画像が呼ばれます。 01~31までの番号を名前にした画像を用意しておけばOKです。 このサンプルでは、画像のURIは『./番号.gif』になっています。 きちんとテストしてませんので、どこかにミスがあるかもしれません。
補足
ありがとうございます。 入れてみたんですけども動かないんですけども。 私の画像の呼び出し方法が間違っているのですかね? あまり理解できてなくて申し訳ないです。
- arexis
- ベストアンサー率66% (66/99)
<html> <script language="javascript"> var timenow = (new Date()).getHours(); function ChgImg(){ if(timenow >= 11){ img = 'after.gif'; } else{ img = 'before.gif'; } document.images['info'].src = img; } </script> <body onload="ChgImg()"> <img name="info" src="white.gif"> </body> </html> 多分これでかなり古いブラウザでも対応できると思いますよ。 >= 11の所が 11時以上の画像のURI else の方に 11未満の画像のURI このケースだと0-10:59 までと、11時過ぎに分かれます。 IMGタグで最初に表示する画像は透明の画像にしておくか、クリックボタンにしておき、その発送説明のある所に誘導できるようにする。 JavaScriptがOFFにされていた場合を考えると、その方が良いです。 商店などの確実な情報を伝えたいサイトでJavaScriptを使って情報を表示する場合は、それが表示されない場合がある事にも留意しておいてくださいね。 個人のHPなら大抵はどうでも良い情報ですから問題ないです。 またサービスの内容上ブラウザを特定のバージョン以上+JavaScript有効指定できるウェッブサービスならJavaScriptの有効は確実です。 ON/OFF混在の場所でJavaScriptを使う場合は情報が伝わっているか?は不確実です。
補足
詳しい説明まで下さり誠にありがとうございます。 ですが、私も詳しくないので、よくわからないって言うのが本音ですけど、この構文ですと、休日等がうまく使い分けできないんじゃないでしょうか? 2枚の画像を11時以降と0時~10:59分とで使い分けるという風な感じだとお見受けいたしましたが。 できましたら、休日等も考慮に入れまして、毎日11時に次の画像に入れ替わる(月初から月末まで毎日変更できるような感じ)ように組めたらなと思っているのですがいかがでしょうか?
- arexis
- ベストアンサー率66% (66/99)
簡単な操作でできる事でので、逆に具体的に何をどうしたいかがはっきりしてないと参考ソースをかきにくいです。 意図する目的が決まってるのなら書いていただければ。
補足
私は、楽天市場で、ネットショップの運営に携わっておりまして、 毎日11時までの受注に対してのみ、発送できるんですけど、それを記載した、画像を作って、毎日11時に書き換わればなと思いまして、質問させていただきました。
補足
お返事が遅くなって大変申し訳ございません。 えっとそのまま貼り付けて、imgフォルダー内にあるcalenderのフォルダを選択させて読み込ませたはずなんですけども・・・。