• 締切済み

javascript、指定時刻での画像切換について

こんにちは。 javascriptで、時刻を指定して 2/1 10:00~10:30と2/2 11:00~11:30はAの画像、(複数の時間帯で) それ以外はBの画像というように画像を切り替えたいのですが うまくいかずに困っています。 どのような記述をすればいいでしょうか? また、この時刻というのはどこを基準とした時刻になるのでしょうか? (閲覧者の使用PCなのか、どこからか時刻をひっぱってくるのか…) 別の国からのアクセスの時にも、その国の時刻に対応して動くようにしたいのですが これは可能でしょうか。 (日本時間とアメリカ時間だけでいいのですが) 初心者で、質問が多くなってしまい申し訳ありません。 どなたかお教えいただけると幸いです。 よろしくおねがいします。

みんなの回答

noname#137826
noname#137826
回答No.2

こんな感じでどうでしょう? 日付の指定個所で、月は0から始まる(1月は0, 2月は1)であることに注意してください。時刻は24時間制で現地時刻(閲覧者のPCの設定に依存)です。 --- <html> <head> <title>test</title> <script type="text/javascript"> window.onload = function(){ var t = [ { start: new Date(2010,1,1,10,0).getTime(),// 2010年2月1日10時0分 end: new Date(2010,1,1,10,30).getTime()// 2010年2月1日10時30分 }, { start: new Date(2010,1,2,11,0).getTime(),// 2010年2月2日11時0分 end: new Date(2010,1,2,11,30).getTime()// 2010年2月2日11時30分 } ] var now = new Date().getTime(); for (var i = 0, n = t.length; i < n; i++) { if (t[i].start < now && now < t[i].end) { document.getElementById('img0').src = "B.jpg"; break; } } } </script> </head> <body> <img id="img0" src="A.jpg"/> </body> </html>

回答No.1

>また、この時刻というのはどこを基準とした時刻になるのでしょうか? まず、JavaScriptを何で使用しているかですよね。それを記載しましょう。あなたは知らないかもしれないが、サーバーサイドスクリプトとして、クライアントサイドスクリプトで別れますね。 さらにHTMLから、WSHから、いろんな所から使われます。まず、どこから使っているのか記載しましょう。 それでその答えが決まります。 つまり、JavaScriptを実行した場所が基準です。その実行した、マシンのシステム時間が基準です。 >別の国からのアクセスの時にも、その国の時刻に対応して動くようにしたいのですが 前述の通り、ホームページでHTMLからの使用なら、それをダウンロード(閲覧)した、マシンの時間です(これをクライアントサイドスクリプトといいます)。これをサーバーサイドの実行となると、サーバーの時間です(CGIとか呼ばれています)。 まずHTMLとブラウザの仕組みで、初歩から勉強しましょう。特に、ホームページを見るという事はどういうことなのか「さるでもわかるホームページ」を買って勉強しましょう。そうすれば、このような疑問はまずでなくなります。 なお、スクリプトの中の「基準とした時刻 」とは別の意味になるので、気おつけましょう(グリニッジ標準時、及びある日からの加算です)。計算時はGMTとの格闘になります。単純に数字として計算した方が速いです。 ここに投稿する前に、まずネットでサンプルを検索しましょう。キーワードとして JavaScript リファレンス 時刻計算 などを組み合わせてください。たくさんあるので、あらためてここで計算方法を示す必要がありません。それくらいたくさんあるので、見てください。 例 "JavaScript リファレンス" "JavaScript 時刻計算"

関連するQ&A