Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PC設定に依存しない曜日判定JSについて)

PC設定に依存しない曜日判定JSについて

このQ&Aのポイント
  • パソコン設定に関係なく曜日で画像を変更する方法について教えてください
  • パソコンの日付設定によらずに曜日で画像を表示するJavascriptのコードについて詳しく教えてください
  • 曜日で画像を切り替えるために、パソコンの設定に依存しないJavascriptの方法があれば教えてください

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

#2です。 曜日の変数の値を入れ代えればいいだけなのですけれど…? 全体がどうなっているのかわかりませんが、document.writeを使うとスクリプトをオフにしているユーザの場合何も表示されないので、デフォルトを表示しておいて後で入替える方がよろしいかと思います。 >パソコンの設定が間違えて火曜日になっていると~ とのことですが、そんな人が何人いるんでしょうかねぇ… #2の例では時刻から曜日を換算するのに、PCに設定されているタイムゾーンを使っていますので、その設定が違っているとやはり曜日の判断が狂う可能性があります。 それも防止したいのなら、世界標準時でそのまま判断すれば間違いないですが、標準時以外(=日本)でブラウズする人にとっては常に時刻がずれていることになってしまいます。 タイムゾーンを日本に限定して9時間の固定にしてしまえばPCの設定には依存しないようにもできますが、他のタイムゾーンからアクセスした場合には、ローカルの時刻と必ずずれが生じてしまうというジレンマに陥ります。 というわけで、ほぼ正確な時刻を取得はできますが、このあたりが解決できていません。 (「ほぼ正確」=サーバは正確な時刻を返すはずですが、通信に時間がかかるので若干の誤差がでます) とりあえず、ローカルPCのタイムゾーン設定を利用したままの例 *元のスクリプトにurlという変数を持ちながら利用していないみたいなので利用してください。 *画像の拡張子も(多分)共通だと思いますので、拡張子も共通にしました。 * url(画像のurl)、extention(画像の拡張子)、ga(画像名の配列)などを、設定する必要があります。 *表示対象とする要素は、とりあえず id="target" のimgにしてあります。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>sample</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <div> <img id="target" src="default.jpg" alt="image"> </div> <script type="text/javascript"> <!-- function jsont(json){ var url = "img/"; //←画像の共通url var extention = ".jpg"; //←画像の拡張子 var ga = ["sun","mon","tue","wed","thu","fri","sat"]; //←日~土の画像名(拡張子抜き) var week = new Date(json["st"]*1000).getDay(); document.getElementById("target").src = url + ga[week] + extention; } //--> </script> <script type="text/javascript" src="http://ntp-a1.nict.go.jp/cgi-bin/jsont"></script> </body> </html>

ichigo-tounyuu
質問者

お礼

fujillinさん 丁寧なコメントありがとうございました!!!! fujillinさんのおかげで無事解決することができました。 今後も色々勉強していこうと思います。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

スクリプトのDate()はローカルPCの時計に依存していますので、外部のサーバから時刻(日付)を取得すれば可能かと。 質問者様の契約サーバからでもよいですし、以下のサイトでも時刻送信のサービスを行なっているようです。  http://www2.nict.go.jp/w/w114/tsp/JST/JST5.html 後者を利用した例: (変数weekに曜日(0~6)を取得しています) <script type="text/javascript"> <!-- function jsont(json){ var week = new Date(json["st"]*1000).getDay(); alert("日月火水木金土".split("")[week] + "曜日です"); } //--> </script> <script type="text/javascript" src="http://ntp-a1.nict.go.jp/cgi-bin/jsont"></script>

ichigo-tounyuu
質問者

お礼

fujillinさん、さっそくのご回答ありがとうございます!! 困っていたのでとても助かりました! アラートを出さずに、画像を出すことは可能でしょうか? 勉強不足で質問ばかりで申し訳ないです・・・

すると、全ての回答が全文表示されます。
  • STICKY2006
  • ベストアンサー率29% (1536/5268)
回答No.1

こんちくは。 >>パソコンの日付設定に依存しないで作ることはできますか? んー。でも、持って来る「元」は必要なので、 クライアント依存かサーバ依存かのどっちかになるのは確定だと思いますよ? サーバ側のシステム時間設定持ってきても、そっちがズレてりゃそれはそれでおしまい。ですからねぇ。 まぁそれは置いといて。。。と。 そもそもサーバ側のスクリプト言語で作るようにするとか 非同期でサーバから持ってくるとか そんなもんかなぁ。と。 前者については、ASPなり、Perlなり、PHPなり。。。の言語かなと。 そっちの方はサーバ上で動くもんですし、そっちから吐き出すようにしてやれば容易かな。と。 後者については。。。 まぁ、おいらもお勉強不足なので大層なこたいえませんが、 サンプルだけ見つけたのでポイと。 http://okwave.jp/qa/q5991798.html 取得データ加工すれば曜日判断できそうですし使えるな~。と。 思ってもみました。

ichigo-tounyuu
質問者

お礼

STICKY2006さん、さっそくのご回答ありがとうございました! サンプル見てみますね。 できそうだということで、やる気がでてきました。 本当にありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A