• ベストアンサー

この構文でよいでしょうか?

<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は自分ではできません。 いろんな例文を見よう見まねで継ぎはぎしながら作ったものなので、 これでよいかどうかわかりません。 何か訂正すべき箇所はありますでしょうか?よろしくお願いします。

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

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

間違いは、一箇所だけです。 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>

syuricyan
質問者

お礼

皆さん加味していただいていますが、一応訂正をします。 [誤]指定したページを表示するスクリプト [正]指定したページへのリンクを表示するスクリプト 実は質問時はHPでは表示されたのですが、その後ブログで確認したら非表示でした。 ですが、指摘いただいた箇所の訂正によりブログでも表示されました。ありがとうございました。

その他の回答 (3)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.4

year = date.getYear(); ↓訂正する。 year = date.getFullYear(); if (year < 2000) year += 1900;←この行は不要なので削除 getFullYearを使う事でもの凄く古いブラウザでは動作しなくなりますが、 getYearのままでもどうせ不安定だし。

syuricyan
質問者

お礼

最初はいらないかなあと思いはずしたら、2008 → 108 みたいになりました。 上記のようにすれば解消されるのですね。勉強になりました、ありがとうございました。

  • auty
  • ベストアンサー率58% (284/486)
回答No.3

if( 2 < d ) document.write("<a href='http://~"+year+""+strMonth+"-2.html'>こちらへどうぞ!</a>"); ですね。

syuricyan
質問者

お礼

ありがとうございました。またよろしくお願いいたします。

  • ANASTASIAK
  • ベストアンサー率19% (658/3306)
回答No.2

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>

syuricyan
質問者

お礼

一応質問時の構文ではHPで何故か?動いてました。 元々はブログに設置予定だったので、これでブログでも動くようになりました。 ありがとうございました。

関連するQ&A

  • 「~○ヶ月○日」という表示方法 2

    以前こちらで同じ質問をさせていただきました。 教えていただいた方にもう1度聞こうと思ったんですが ここではそれはできないようなので、どなたか教えてください! 「HPを開設してから○ヶ月と○日が経ちました」 というような表示をしたいのです。 以前教えていただいた方法でうまく表示されていたのですが、 最近ちょっとくるってるんです。 本当は4ヶ月と22日(5/4現在)なんですが 5ヶ月と8日と表示されてしまいます。 なぜでしょうか? いろいろ検索してまわったのですが、 どれも何日という表示方法で、○ヶ月というのは見つかりませんでした。 以前教えていただいたのは↓です。 <SCRIPT> var StrMsg = ""; var dtToday = new Date;//現在の日付を取得する。 var StDay = new Date(2001,12,12);//Date(年,月,日)開設した年月日を入れておく。 //現在の日付から開設日付を引き何日経過したのかを取得する if(StDay.getMonth()>=dtToday.getMonth()+1){ var strMonth = StDay.getMonth()-(dtToday.getMonth()+1); }else{ var strMonth = (dtToday.getMonth()+1)-StDay.getMonth(); } if(dtToday.getDate()>=StDay.getDate()){ var strDate = dtToday.getDate()-StDay.getDate(); }else{ var strDate = StDay.getDate()-dtToday.getDate(); } //HTMLへと出力する if(strMonth != 0){ StrMsg = StrMsg + strMonth+"ヶ月と"; } if(Date != 0){ StrMsg = StrMsg + strDate+"日"; } if(StrMsg.length != 0){ document.write("HPを開設してから"+ StrMsg +"が経ちました"); }</SCRIPT> お願いします!!

  • 半角を全角に

    <script language="javascript"> <!-- var dtToday = new Date; var strMonth; var strDate; strMonth = dtToday.getMonth() + 1; strDate = dtToday.getDate(); document.write(strMonth+"月"+strDate+"日"); //--> </script> これ全体に例えば書体指定(ふみゴシックなど)をすると、拾った変数が半角のため 適用されません。変数を全角にする方法なんてありますでしょうか? よろしくお願いします。

  • 明日の日にちを表示するときは

    下記のように1日後の日付を常に表示するときは どこを変えればいいのでしょうか? <TD>※明日は<script language="JavaScript"> <!-- // 訪問日表示 now = new Date(); year = now.getYear(); if (year < 2000) year = year + 1900; month = now.getMonth()+1; day = now.getDate(); wk = new Array("日","月","火","水","木","金","土"); document.write("有効期限:"+year+"年"+month+"月"+day+"日"); // --> </script>

  • JavaScriptでdocument.fileCreatedDate

    JavaScriptでdocument.fileCreatedDateを使おうとして <script type="text/javascript"> <!-- var date = new Date(document.fileCreatedDate); var year = date.getYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var min = date.getMinutes(); if(year < 2000){year += 1900;} if(month < 10){month = "0" +month;} if(day < 10){day = "0" + day;} if(hour < 10){hour = "0" + hour;} if(min < 10){min = "0" + min;} document.write("作成日:" + year + "年" + month + "月" + day + "日" + hour + "時" + min + "分" + "<BR>"); //--> </script> のようなスクリプトを作ったんですが表示がおかしくなります。 Google chromeでも正常に表示できるようにしたいです。 よろしくおねがいします。

  • 現在時刻をボタンクリックで表示

    下記の現在時刻を表示させるスクリプトを書いたのですが、 これをボタン <INPUT type="button" value="時刻" onClick=""> を押したら表示という形にさせたいと思っています。 どうすればよいのでしょうか?お力をお貸しください、お願いします。 _______________________ <script language=javascript> <!-- function writedate(date){ var obj=new Date(date) var y=obj.getYear() if(y<2000){y+=(y<70?2000:1900)} var m=obj.getMonth()+1 var d=obj.getDate() document.write(y+" 年 "+m+" 月 "+d+" 日 ") } writedate(new Date()) //--> </script> _______________________

  • javascriptで質問

    javascript初心者です。 日付で自動的に変わるようなメニューが作りたいのですが もっとシンプルに簡潔にできますか? また、開いているページのタブの色を他と変えたいのですができますか? 以下ソース↓ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>スクリプトテスト</title> <style type="text/css"> .menu li{ list-style-type:none; float:left; border:solid 1px #666666; } .menu li a{ padding:5px; background:#eeeeee; display:block; } .menu li a:hover{ background:#ffffff; } </style> <script type="text/javascript"> <!-- var day01 = new Date(); var year01 = day01.getFullYear(); //年 var mon01 = day01.getMonth() + 1; //月 var date01 = day01.getDate(); //日 var day02 = new Date(); day02.setDate( day02.getDate()+1 ); var year02 = day02.getFullYear(); //年 var mon02 = day02.getMonth() + 1; //月 var date02 = day02.getDate(); //日 var day03 = new Date(); day03.setDate( day03.getDate()+2 ); var year03 = day03.getFullYear(); //年 var mon03 = day03.getMonth() + 1; //月 var date03 = day03.getDate(); //日 var day04 = new Date(); day04.setDate( day04.getDate()+3 ); var year04 = day04.getFullYear(); //年 var mon04 = day04.getMonth() + 1; //月 var date04 = day04.getDate(); //日 var day05 = new Date(); day05.setDate( day05.getDate()+4 ); var year05 = day05.getFullYear(); //年 var mon05 = day05.getMonth() + 1; //月 var date05 = day05.getDate(); //日 var day06 = new Date(); day06.setDate( day06.getDate()+5 ); var year06 = day06.getFullYear(); //年 var mon06 = day06.getMonth() + 1; //月 var date06 = day06.getDate(); //日 var day07 = new Date(); day07.setDate( day07.getDate()+6 ); var year07 = day07.getFullYear(); //年 var mon07 = day07.getMonth() + 1; //月 var date07 = day07.getDate(); //日 // --> </script> </head> <body> <ul class="menu"> <script type="text/javascript"> <!-- document.write('<li><a href="'+year01+mon01+date01+'.html">'+mon01+'月'+date01+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year02+mon02+date02+'.html">'+mon02+'月'+date02+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year03+mon03+date03+'.html">'+mon03+'月'+date03+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year04+mon04+date04+'.html">'+mon04+'月'+date04+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year05+mon05+date05+'.html">'+mon05+'月'+date05+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year06+mon06+date06+'.html">'+mon06+'月'+date06+'日'+'</a></li>'); //--> </script> <script type="text/javascript"> <!-- document.write('<li><a href="'+year07+mon07+date07+'.html">'+mon07+'月'+date07+'日'+'</a></li>'); //--> </script> </ul> </body> </html>

  • javascript 日付自動更新

    以前にもご質問させてもらったのですが、解決にいたらなかったので今一度ご質問させてもらいます。何卒、宜しくお願い致します。 javascriptでサイトをアップした日付を、"最終更新日:2009年12月12日"と自動で更新したいです。 今までは、こちらのjavascriptを使っていたのですが、これですとブラウザ、GoogleChromeに対応していません。 文字化けしてしまいます。 <SCRIPT language="JavaScript"> <!-- renew = new Date(document.lastModified); y=renew.getYear(); m=renew.getMonth() + 1; d=renew.getDate(); if(y<1900) {y=y+1900;} document.write("最終更新日:"+y+"年"+m+"月"+d+"日"); //--> </SCRIPT> こちらのコードですとGoogleChromeで動くのですが、 <script type="text/javascript" charset="utf-8"> <!-- var d = new Date(); if (d.toLocaleDateString) { document.write("最終更新日:" + d.toLocaleDateString(document.lastModified)); } else{ y=d.getYear(); m=d.getMonth() + 1; d=d.getDate(); if(y<1900) {y=y+1900;} document.write("最終更新日:"+y+"年"+m+"月"+d+"日"); } // --> </script> このように表示されてしまいます。 最終更新日:Saturday,December,12,2009 "最終更新日:2009年12月12日"この形で表示させたいです。 どなたかお力を貸して下さい。お願い致します。

  • document.write その2

    w = (new Date()).getDay(); m = (new Date()).getMonth(); d = (new Date()).getDate(); if(w == 0) document.write("OKえて、GOO!"); 毎週日曜日に表示するスクリプト(詳細省略)ですが、 9月9日(日)まで表示して、以後の日曜日には表示しないようにするには if( ) の部分はどういう設定になるのでしょうか? また、こういうことを自分で調べられるようなURLを紹介いただければ幸いです。 よろしくご教授お願いします。

  • 月の表示

    HPで今月を表示したいです。 数字がローマ字ですが、漢字で表示したいです。 例えば10月が十月で表示する事が可能ですか? <SCRIPT language="javascript"> dd = new Date(); yy = dd.getYear(); mm = dd.getMonth() + 1; dd = dd.getDate(); if (yy < 2000) { yy += 1900; } if (mm < 10) { mm = "0" + mm; } if (dd < 10) { dd = "0" + dd; } document.write("<FONT size='-1'>"); document.write(mm + "月" ); document.write("</FONT>"); </SCRIPT> 教えてください! お願いします。

  • javascriptでの日付更新の時間について

    初歩的なことですいませんが・・・ Javascriptについてご教授ください。 以下のような日付を表示するJavascriptがあります。 <SCRIPT LANGUAGE="JavaScript"> <!-- date = new Date(); y = date.getFullYear(); m = date.getMonth() + 1; d = date.getDate(); if (m < 10) { m = "0" + m; } if (d < 10) { d = "0" + d; } document.write(y + "/" + m + "/" + d); // --> </SCRIPT> これの場合、何時に見ようが今現在の日付が表示されますよね・・・ 例えばこれを午前10時になったら今日の日付に表示を変える・・・みたいなことってできますか?? (つまり午前0:00から9:59までは前日の日付を表示させるということなのですが・・・) 分かりにくかったらすいません。 どうかよろしくお願いします><

専門家に質問してみよう