- ベストアンサー
この構文でよいでしょうか?
<script> date = new Date(); year = date.getYear(); d= (new Date()).getDate(); strMonth = dtToday.getMonth() + 1; if (strMonth < 10) { strMonth = "0" + strMonth; } if (year < 2000) year += 1900; if( 2 < d ) document.write("<a href='http://~"+year+""+strMonth+"-2.html'>こちらへどうぞ!</a>"); </script> 毎月3日以降に指定したページを表示するスクリプトです。 一応思った通りに表示されています。 基本的にJavaScriptは自分ではできません。 いろんな例文を見よう見まねで継ぎはぎしながら作ったものなので、 これでよいかどうかわかりません。 何か訂正すべき箇所はありますでしょうか?よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
間違いは、一箇所だけです。 strMonth = dtToday.getMonth() + 1; は strMonth = date.getMonth() + 1; です。 でも、最低限読みやすくするには、次のようにしてみてください。 <script> date = new Date(); year = date.getYear(); month = date.getMonth() + 1; d= date.getDate(); if (month < 10) { strMonth = "0" + month; } if (year < 2000) year += 1900; if( 2 < d ) document.write("<a href='http://~"+year+""+strMonth+"-2.html'>こちらへどうぞ!</a>");</script> </script>
その他の回答 (3)
- steel_gray
- ベストアンサー率66% (1052/1578)
year = date.getYear(); ↓訂正する。 year = date.getFullYear(); if (year < 2000) year += 1900;←この行は不要なので削除 getFullYearを使う事でもの凄く古いブラウザでは動作しなくなりますが、 getYearのままでもどうせ不安定だし。
お礼
最初はいらないかなあと思いはずしたら、2008 → 108 みたいになりました。 上記のようにすれば解消されるのですね。勉強になりました、ありがとうございました。
- auty
- ベストアンサー率58% (284/486)
if( 2 < d ) document.write("<a href='http://~"+year+""+strMonth+"-2.html'>こちらへどうぞ!</a>"); ですね。
お礼
ありがとうございました。またよろしくお願いいたします。
- ANASTASIAK
- ベストアンサー率19% (658/3306)
strMonth = dtToday.getMonth() + 1; この行↑のdtTodayはないようなので、次のように 書き換えれば動きます。この構文は毎月3日以降に 年月-2.htmのファイルにリンクさせるものですね。 date = new Date(); year = date.getYear(); d= (new Date()).getDate(); strMonth = date.getMonth() + 1; if (strMonth < 10) { strMonth = "0" + strMonth; } if (year < 2000) year += 1900; if( 2 < d ) document.write("<a href='http://~"+year+""+strMonth+"-2.html'>こちらへどうぞ!</a>"); </script>
お礼
一応質問時の構文ではHPで何故か?動いてました。 元々はブログに設置予定だったので、これでブログでも動くようになりました。 ありがとうございました。
お礼
皆さん加味していただいていますが、一応訂正をします。 [誤]指定したページを表示するスクリプト [正]指定したページへのリンクを表示するスクリプト 実は質問時はHPでは表示されたのですが、その後ブログで確認したら非表示でした。 ですが、指摘いただいた箇所の訂正によりブログでも表示されました。ありがとうございました。