- ベストアンサー
selectタグで日付を生成
プルダウンメニューで、指定の日付をYYYY/MM/DDの形式で生成して表示されたいと思っています。 具体的な方法は、先日別の質問にて御教授いただきました。 しかし途中で仕様が変更になってしまって、今回新たにご質問させて頂いております。 希望としては、本日から4営業日(土日祝日休み)から30日先までの日付をYYYY/MM/DDの形式で生成して表示されたいと思っています。 そして、初期表示として <option value="default" selected>-------</option> が先頭にくるようにして、 2行目からスクリプトでの書き換えを行なうようにしたいと思っています。 日付指定の補足ですが、 本日から4営業日後の日付は、土日祝を含めての日数で表示させたいと思います。 例) 2009/7/16 だった場合 (プルダウンメニューで) 2009/7/23 2009/7/24 2009/7/25 2009/7/26 2009/7/27 … 2009/8/15 ちょっと心配ですが、祝日もスクリプトでカウントされるのでしょうか。。 質問内容が分かりづらいかと存じますが、 何卒よろしくお願いいたします。 以前の質問URLはこちらです。 http://oshiete1.goo.ne.jp/qa5108724.html <html> <head> <script type="text/javascript"> window.onload = function() { var d, str, elm = document.getElementById('delidate'); var day = new Date(); day.setMilliseconds(4*24*60*60*1000); for (d=0; d<26; d++) { str = day.getFullYear() + '/' + (day.getMonth() + 1) + '/' + day.getDate(); elm.options[d] = new Option(str, str); day.setMilliseconds(24*60*60*1000); } } </script> </head> <body> <select name="delidate" id="delidate"> <option value="default" selected>-------</option> <option value="4日後">4日後</option> <option value="5日後">5日後</option> <option value="6日後">6日後</option> <option value="7日後">7日後</option> <option value="8日後">8日後</option> <option value="9日後">9日後</option> <option value="10日後">10日後</option> <option value="10日後">11日後</option> <option value="10日後">12日後</option> <option value="10日後">13日後</option> <option value="10日後">14日後</option> <option value="10日後">15日後</option> <option value="10日後">16日後</option> <option value="10日後">17日後</option> <option value="10日後">18日後</option> <option value="10日後">19日後</option> <option value="10日後">20日後</option> <option value="10日後">21日後</option> <option value="10日後">22日後</option> <option value="10日後">23日後</option> <option value="10日後">24日後</option> <option value="10日後">25日後</option> <option value="10日後">26日後</option> <option value="10日後">27日後</option> <option value="10日後">28日後</option> <option value="10日後">29日後</option> <option value="30日後">30日後</option> </select> </body> </html>
- みんなの回答 (13)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- プルダウンメニュー日付生成で月の変わり目について
初心者です。 質問集をいろいろ探して日付生成できたのですが月末、月初がうまくいきません。 イヌでも・・やトホホ・・など探してますがマッチする情報が見つからないのでわかったら教えて下さい。 100にち分を表示するようにしてます。 このソースは短くてシンプルなので気に入ってます、 ======================================== <SCRIPT type="text/javascript"> window.onload = function() { var d, str, elm = document.getElementById('gdate'); var day = new Date(); day.setMilliseconds(24*60*60*1000); for (d=1; d<100; d++) { str = (day.getMonth() + 1) + '/' + (day.getDate() -1); elm.options[d] = new Option(str, str); day.setMilliseconds(24*60*60*1000); } } </SCRIPT><SELECT name="HIDUKE" id="gdate"> <OPTION>日付選択</OPTION> </SELECT> ======================================== あまり複雑にしないで解決する方法ありますか。
- ベストアンサー
- JavaScript
- selectタグで日付を生成
プルダウンメニューで、本日から4日後 から 1か月先までの日付をYYYY/MM/DDの形式で生成して表示されたいのですが、それをvalueに入れる方法が分かりません。 下記までは書いてみたんですが、 <option value="???">のところに何と書いていいのか分からなくなってしまいました。。 for文などループ処理で書いた方がキレイだとは思いますが、 イマイチ分からなかったので、併せて御教授いただければと思います。 <script type="text/javascript"> document.write(AddDate(+4)+'~'+ AddDate(+30)); function AddDate( n ){ var day = new Date( (new Date).getTime()+n*24*60*60*1000); return (day.getFullYear() + "/" + (day.getMonth() + 1) + "/" + day.getDate()); } </script> <select name="delidate"> <option value=""><script type="text/javascript">document.write(AddDate(+4));</script></option> <option><script type="text/javascript">document.write(AddDate(+5));</script></option> <option><script type="text/javascript">document.write(AddDate(+6));</script></option> <option><script type="text/javascript">document.write(AddDate(+7));</script></option> <option><script type="text/javascript">document.write(AddDate(+8));</script></option> <option><script type="text/javascript">document.write(AddDate(+9));</script></option> <option><script type="text/javascript">document.write(AddDate(+10));</script></option> <option><script type="text/javascript">document.write(AddDate(+11));</script></option> <option><script type="text/javascript">document.write(AddDate(+12));</script></option> <option><script type="text/javascript">document.write(AddDate(+13));</script></option> <option><script type="text/javascript">document.write(AddDate(+14));</script></option> <option><script type="text/javascript">document.write(AddDate(+15));</script></option> <option><script type="text/javascript">document.write(AddDate(+16));</script></option> <option><script type="text/javascript">document.write(AddDate(+17));</script></option> <option><script type="text/javascript">document.write(AddDate(+18));</script></option> <option><script type="text/javascript">document.write(AddDate(+19));</script></option> <option><script type="text/javascript">document.write(AddDate(+20));</script></option> <option><script type="text/javascript">document.write(AddDate(+21));</script></option> <option><script type="text/javascript">document.write(AddDate(+22));</script></option> <option><script type="text/javascript">document.write(AddDate(+23));</script></option> <option><script type="text/javascript">document.write(AddDate(+24));</script></option> <option><script type="text/javascript">document.write(AddDate(+25));</script></option> <option><script type="text/javascript">document.write(AddDate(+26));</script></option> <option><script type="text/javascript">document.write(AddDate(+27));</script></option> <option><script type="text/javascript">document.write(AddDate(+28));</script></option> <option><script type="text/javascript">document.write(AddDate(+29));</script></option> <option><script type="text/javascript">document.write(AddDate(+30));</script></option> </select> 分かり難く申し訳ないですが、宜しくお願い致します。
- ベストアンサー
- JavaScript
- 日付を取得するスクリプト
JavaScriptに関して質問させていただきます。 下記のようなフォーム記述にたいして、 selectedが現在月にくるようなスクリプトはありますでしょうか? 例えば、7月であれば、7月がアクティブになるようにしたいです。 日付を表示させるスクリプトはわかるのですが、 どのようにselectedとして表示させるのが分かりません。。。 参考になるスクリプトファイルを紹介しているURL、もしくは スクリプトを紹介してくれる方、どうぞご教授お願いします。 <SELECT NAME="mon" size="1"> <option value="" selected> <option value="01">01 <option value="02">02 <option value="03">03 <option value="04">04 <option value="05">05 <option value="06">06 <option value="07">07 <option value="08">08 <option value="09">09 <option value="10">10 <option value="11">11 <option value="12">12 </SELECT>月
- ベストアンサー
- JavaScript
- JavaScriptで日付計算してアラート
はじめまして。 どうやってJavaScriptでフォームの内容を取得して計算させるかわからなくて相談させてください。 単に今日の日付を取得して+10日後とかの表示はなんとかできたのですがなにぶん初心者ですのでそれ以上のことはさっぱりです^^; やりたいことはフォームで年、月、日を選択して検索ボタンを押すと検索のPHPにフォームの内容を送るというものです。 そこで、指定の日数以降、以前の日付を選ぶとアラートが出るようにしたいのです。(今日より30日以前と30日以降を選ぶとアラートがでる) ご教授のほどよろしくお願いします。 以下今まで作ったソースです。 できればこれに組み込みたいので・・・ <script type="text/javascript"> <!-- function FormCheck(Form) { Error = new Array(); i = 0; // 年の選択チェック if ((Form["yyyy"]) && (Form["yyyy"][0].selected == true)) { Error[i] = "年は必須項目です。"; i++; } // 月の選択チェック if ((Form["mm"]) && (Form["mm"][0].selected == true)) { Error[i] = "月は必須項目です。"; i++; } // 日の選択チェック if ((Form["dd"]) && (Form["dd"][0].selected == true)) { Error[i] = "日は必須項目です。"; i++; } // 未入力があればアラート if (Error.length > 0) { ErrorText = Error.join("\n"); alert ("未入力の項目があるので検索できません。\n\n"+ErrorText); return false; } } // --> </script> <form name="trace" action="kensaku.php" method="GET" onsubmit="return FormCheck(this)"> <TABLE><TR><TD> <select name="yyyy" size="1"> <option value=""></option> <option value="2008">2008</option> <option value="2009">2009</option> </select>年 <select name="mm" size="1"> <option value=""></option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <!-- ~~~~略~~~~~ --> <option value="12">12</option> </select>月 <select name="dd" size="1"> <option value=""></option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <!-- ~~~~略~~~~~ --> <option value="31">31</option> </select>日 </TD></TR> <TR><TD><INPUT TYPE="submit" name="submit" VALUE="検索"></TD></TR> </TABLE>
- ベストアンサー
- JavaScript
- perl セレクトメニューを ↓の者です。
前質で→ http://oshiete1.goo.ne.jp/qa4142221.html #print "<option value=\"$day1\">$day1"; で出来たのですがw dayの日範囲を多くするとかなり長くなってしまい(T_T) (初心者のくせに)foreachを使ってみようかと エスケープしたりダブルコーションにしたり色々やっても・・・ <option>に月日が表示されません(T_T) 基本的に間違っているのでしょうか・・・ お願いします。 *他にも変なところがあったら教えて下さい。 -------------------------------------- <select name=dd><option value="なし" selected> ↓ <option value="なし">指定なし EOM foreach (0 .. $#pl) { if ($in{'plan'} eq $_) { print "<option value=\"$_\">$pl[$_]\n"; } else { print "<option value=\"$_\">$pl[$_]\n"; } } print "</option></select>\n"; #-------------------------------------- ### ↑メイン.cgiです。↑ ### ↓ サブ.cgiです。↓ #-------------------------------------- # 時間 $time = time(); # 範囲日 $day1 = day0($time + (86400 * 2)); $day2 = day0($time + (86400 * 3)); $day3 = day0($time + (86400 * 4)); ############ 上下の行のday数が14日間位まで続く・・・ @pl = ('$day1', '$day2', '$day3'); # 日計算 sub day0{ my(@weekdayname) = ('日','月','火','水','木','金','土'); my $time = shift || time(); my $day0 = $time + (24 * 60 * 60); my ($yyyy, $mm, $dd, $w) = (localtime($day0))[5,4,3,6]; $yyyy += 1900; $mm += 1; return( sprintf('%4d/%2d/%2d(%s)', $yyyy, $mm, $dd, $weekdayname[$w]) ); }
- ベストアンサー
- Perl
- 日付取得、計算及び表示コードが動作しません。
日付取得、計算及び表示コードが動作しません。 下記のコードのどこが間違っているのか、どなたかお分かりですか? このコードでは、今日の日付をサーバから取得し、それから10日後の日付を計算して表示したいです。 $currentdate = .getdate(); $yyyy = $currentdate["year"]; $mm = $currentdate["mon"]; $dd = $currentdate["mday"]; $int_day = 10; $duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); echo "$duedate" また、上記のコードが動作するようになったとして、表示される日付は「2008/06/10」のようになるかと思いますが、これを「2008年06月10日」のように表示させる方法をご存知でしょうか? >$duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); 上記コードを下記のように変更してもだめです。 >$duedate = .date("y年m月d日", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); よろしくお願いします。
- ベストアンサー
- PHP
- 入力された日付の正規表現の仕方を教えて下さい。
こんばんは、いつもお世話になっております。 過去ログをあさってみたのですが、探し方が悪いのか 見つけられず…。 どうかご指導よろしくお願い申し上げます。 フォームに入力された値のチェックを、CGIに渡す前に ジャバスクリプトでもチェックしたいと思っています。 未入力や半角英数字以外のエラーチェックは出来たのですが yyyy/mm/dd形式で日付の入力をして欲しい時の チェックの書き方がわかりません。 私なりに色々と調べてみて、 if(myForm.day.value.match(/^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$/)){ alert("日付は半角でyyyy/mm/dd形式でご記入下さい"); return false; } と記述してみたのですが、9999/99/99のような、ありえない 日付でも通ってしまいます。 そればらば、とおもい if(myForm.day.value.match(/^[2-3][0-9][0-9][0-9]\/[0-1][0-9]\/[0-3][0-9]$/)){ alert("日付は半角でyyyy/mm/dd形式でご記入下さい"); return false; } と書いてみたのですが、こちらはエラーが出ました(泣) どうか、ご指導よろしくお願い申し上げます。
- ベストアンサー
- JavaScript
- HTMLのSELECTタグの使い方、JSPのセッション格納について
HTMLのSELECTタグの使い方、JSPのセッション格納について Jspで開発をしております。IE7以上です。 同一画面内でボックスで選択した値をそのままセッションに格納したいのです。 Javascriptで制御したいのですが、なにかいい方法をご存知ですか? <script type="text/javascript"> function test(obj) { with(obj) { form.text1.value = options[selectedIndex].value; } } </script> <SELECT NAME="select1" onchanged="test(this)"> <OPTION VALUE=1>First <OPTION VALUE=2 selected>Second <OPTION VALUE=3touya">Theard </SELECT> またselectedでは初期の表示のみ選べて値の初期値はscript側で設定するのでしょうか? これだとボックスに変化があれば値が取得できるみたいです。 できればボックスをいじらなければ初期表示の値をセッションに格納。 ボックスをいじれば選択した値をセッションに格納。
- ベストアンサー
- JavaScript
- プルダウンからの日付取得処理
現在、PHP+SQLiteでWEBページを作成しております。 (初心者です。) フォームに日付をプルダウンで選択出来るように、 $utime = time()+$jisa*3600; $today = getdate($utime); //年のセレクトボックス(±2年) echo "<select name=year>\n"; for ($y=$today[year]+2; $y>=$today[year]-2; $y--) { $sel = ($y == $today[year]) ? " selected" : ""; echo "<option value=\"$y\"$sel>$y</option>\n"; } echo "</select>/\n"; //月のセレクトボックス(12-1月) echo "<select name=mon>\n"; for ($m=12; $m>=1; $m--) { $sel = ($m == $today[mon]) ? " selected" : ""; echo "<option value=\"$m\"$sel>$m</option>\n"; } echo "</select>/\n"; //日のセレクトボックス(31-1日) echo "<select name=day>\n"; for ($d=31; $d>=1; $d--) { $sel = ($d == $today[mday]) ? " selected" : ""; echo "<option value=\"$d\"$sel>$d</option>\n"; } echo "</select>\n"; というコードを記述しております(これはネットを参考にしました)。 これでプルダウンの表示自体は出来たのですが、実際にここから値を取得するにはどうすれば良いかが分かりません・・・。 ご教授お願いいたします。
- ベストアンサー
- PHP
- JavaScriptで日付の正規表現の方法
お世話になっております。たびたびすみません。。 昨日、教わった正規表現の仕方(XX-XXXXXXX-XXXXX X=1-9)はよくわかったのですが、その方法を真似て 2004/02/02 12:00 みたいな日付が正しいかどうかチェックするスクリプトを考えてみたのですが、エラーがでてうまく動きません。 str=document.FORM.TEXT.value; if(str != ""){ if(! str.match(/^[0-9]{4}/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}$/)){ window.alert("ERR"); document.FORM.TEXT.focus(); return(false); } } 形式は (YYYY/MM/DD hh:mm)です。 まったくわかりません・・・すみませんが、よろしくお願いいたします。
- ベストアンサー
- JavaScript
お礼
このスクリプトは1年後、2年後でも対応しているものでしょうか? また4営業日を起点にして30日ということでしたが、間違えておりました。 本日を起点に30日後でございました。。申し訳ないです。 また会社の創業記念日など突発的な休日の登録については、 this.List[y + 909] = '会社創設日'; などと追加すればよろしいでしょうか。