- ベストアンサー
【livedoor blog】日本語で曜日を表示
ライブドアのブログで、日付の後に日本語で曜日を表示したいと思います。 http://blog.livedoor.jp/mini_storage/archives/50354374.html このページを参考にしたのですが、月名と曜日名の表記を日本語に直した(下記参照)だけでは、何も表示されませんでした。 他にも直すところがあるのか、どのような記述をすればよいか教えて頂けたら幸いです。 ※ブログの設定では、日付は日本語表記にしています。 <SCRIPT Language="JavaScript"><!-- str = "<$ArticleDate$>"; ml = str.indexOf(" "); ms = str.substring(0,ml); if (ms == "01月") {m = 0} else if (ms == "02月") {m = 1} else if (ms == "03月") {m = 2} else if (ms == "04月") {m = 3} else if (ms == "05月") {m = 4} else if (ms == "06月") {m = 5} else if (ms == "07月") {m = 6} else if (ms == "08月") {m = 7} else if (ms == "09月") {m = 8} else if (ms == "10月") {m = 9} else if (ms == "11月") {m = 10} else if (ms == "12月") {m = 11} deps = str.indexOf(","); nod = deps - ml; dsp = ml + 1; d = str.substring(dsp,deps); ysp = deps + 2; yep = ysp + 6; y = str.substring(ysp,yep); dateObj = new Date(); dateObj.setFullYear(y) dateObj.setMonth(m); dateObj.setDate(d); ewd = new Array("日","月","火","水","木","金","土"); wd = dateObj.getDay(); document.write("("+ewd[wd]+")"); // --> </SCRIPT>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、スクリプトの意味を理解してください。 何をしたら、どうなるのか? というのを理解しない事には、なぜ動かないのか? というのがわからないと思います。 参照されているページで何をしているのかというと 「January 24, 2006」という文字列をstrに入れる str = "<$ArticleDate$>"; strの最初の空白の位置を取る(何文字目か) ml = str.indexOf(" "); strの文字列の0番目からml番目までをmsに入れる ms = str.substring(0,ml); この後msに入ってる文字列(この場合"January")を 比較しています。 これは参照しているページの方が英語表記である為 このような処理をしています。 "January 24, 2006" でも日本語表示の場合は "2006年01月24日" という形?になるので、参照されているスクリプトを そのまま日本語にしても、ぜんぜん違うという事が わかりますね。 まず、英語表記でも日本語表記でも言える事ですが 年、月、日を分けて考えなければなりません。 日本語表記の物を年、月、日に分ける事ができれば 後は、参照スクリプトの年の部分は年を 月の部分は月を、日の部分は日をと当てはめれば 問題なく動くようになるはずです。
その他の回答 (1)
- Blaise
- ベストアンサー率33% (13/39)
サーバからの参照値に整合性がありません。 なので、 if (ms == "01月") {m = 0} else if (ms == "02月") {m = 1} else if (ms == "03月") {m = 2} else if (ms == "04月") {m = 3} else if (ms == "05月") {m = 4} else if (ms == "06月") {m = 5} else if (ms == "07月") {m = 6} else if (ms == "08月") {m = 7} else if (ms == "09月") {m = 8} else if (ms == "10月") {m = 9} else if (ms == "11月") {m = 10} else if (ms == "12月") {m = 11} の部分をゾックリと if (ms == "January") {m = 0} else if (ms == "February") {m = 1} else if (ms == "March") {m = 2} else if (ms == "April") {m = 3} else if (ms == "May") {m = 4} else if (ms == "June") {m = 5} else if (ms == "July") {m = 6} else if (ms == "August") {m = 7} else if (ms == "September") {m = 8} else if (ms == "October") {m = 9} else if (ms == "November") {m = 10} else if (ms == "December") {m = 11} に入れ変えればOK
お礼
回答ありがとうございます。 初めは表面上で書き換えるだけで、サーバからの参照値・・・というところまで考えが及んでいませんでした。 問題は別の方法で解決しましたが、今後の参考にさせて頂きます。
お礼
知識ゼロの状態で的外れな質問をしていたところ、考え方から丁寧に説明して下さり、非常に感謝しております。 おかげさまで、きちんと日本語表記から曜日を取得して表示してくれるようになりました! すごい・・・なんだか目から鱗です・・・本当にありがとうございました!