Date関数でデータを取得する方法について

このQ&Aのポイント
  • Date関数を使用してデータを取得する方法について説明します。
  • テキストボックスに入力されたDate関数で取得したデータを変数に格納する方法について解説します。
  • 質問文章のコードにおいて、date変数にテキストボックスの情報を取得するための誤りがあります。
回答を見る
  • ベストアンサー

Date関数で取得したデータの取得方法

<javascript> myD = new Date(); myYear = myD.getFullYear(); myMonth = myD.getMonth() + 1; if(myMonth < 10) myMonth="0"+myMonth; myDate = myD.getDate(); if(myDate < 10) myDate="0"+myDate; myMess1 = myYear + "-" + myMonth + "-" + myDate + ""; function myFunction(){ document.test.data1.value = myMess1; } date = document.test.data1.value; //ここでdata1に入ってる情報を取得できない。 </javascript> <body> <form name="test" method="POST" action="<?php echo $hogehoge; ?>"> <input name="data1" id="data1" type="text" value="<?php echo $row_test['data1']; ?>" size="20" /> <input type="button" value="当日" onclick="myFunction()"> </body> ここで、テキストボックスに入ってるDate関数で取得したデータをdate変数に入れたいのですが、それがどうやってもできません。なにが問題かわかる人がいたらお願いします。 もし必要な情報があればいってください。 回答よろしくおねがいします!

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

  • ベストアンサー
回答No.2

myFunction()を呼び出してdocument.test.data1.valueに値を入れてから、その値を取り出してください。

soccerrlove
質問者

お礼

functionを呼び出してから値を入れるってのがヒントになり見事できました! ありがとうございました!

その他の回答 (2)

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

>Date関数で取得したデータをdate変数に入れたいのですが 言葉通りで良いのなら…  date = myMess1; で十分。(フォームから再取得してはいませんが、同じ値なので) ユーザがformに入力した値を取りたければ、入力後の処理で取得するようにするしてください。

soccerrlove
質問者

お礼

入力後の処理で取得ってのが助けになりました! ありがとうございました!

  • t_ohta
  • ベストアンサー率38% (5081/13277)
回答No.1

date = document.test.data1.value; が実行される時点では、まだbody部分のレンダリングが終わってないからDOMを見つけられてないと思われます。 onloadイベント等で実行すると取れると思います。

soccerrlove
質問者

お礼

回答ありがとうございました!

soccerrlove
質問者

補足

早い回答ありがとうございます! window.onload = function(){ date = document.test.data1.value; } dateの変数をそのまま出力したらPHPの値をそのまま引き継いでまんま現れてしまいました!<?php echo $row_test['data1']; ?> phpの状態ではなくて、これをちゃんとデータの入った形で取得するにはどうしたらいいのでしょうか? 理想:2014-07-28

関連するQ&A

  • javaScriptのエラー

    サイトにjavaScriptを使って自動日付表示があったのでアップしたところ年代が2004では無く104と表示してしまいます。ちなみにスクリプトは下記の通りですよろしく御願します。 <略> myWeek = new Array("Sun.", "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat."); myD = new Date(); myYear = (myD.getYear() <= 99) ? 1900+myD.getYear() : myD.getYear(); myMonth = myD.getMonth() + 1; myDate = myYear + "/" + myMonth + "/" + myD.getDate(); myDay = myWeek[myD.getDay()]; document.write(myDate, " ", myDay); <略>

    • ベストアンサー
    • Mac
  • プルダウンの値とJavaScript

    下記のようなソースでHTMLのID、パスワードを入力しログを閲覧する画面を作成しました。 プルダウンで今月のログか先月のログを選択するようにしたいと思いますが、 value値の所にJavaScriptの値を入力したいと思っていますが上手くいきません。 具体的には、<OPTION value="1">の1の代わりにdlogの値を<OPTION value="2">の2の 代わりにllogの値を入力したいと思っています。 宜しくお願い致します。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> <SCRIPT Language="JavaScript"> <!-- myDate = new Date(); myYear =1900+(myDate.getYear()%1900); dYear =(myDate.getYear() % 100); myMonth =myDate.getMonth() + 1; lastMonth =myDate.getMonth(); if (myMonth<10){ dtMonth=("0"+(myDate.getMonth()+1)); } else {dtMonth =myMonth; } if (myMonth<10){ dlMonth=("0"+(myDate.getMonth())); } else {dlMonth =(myDate.getMonth()); } dlog =(dYear+""+dtMonth+"_log.txt"); if (myMonth == 1){ llog=(dYear-1+""+"12_log.txt"); } else {llog=(dYear+""+dlMonth+"_log.txt"); } // --> </SCRIPT> </HEAD> <BODY> <P align="center"><FONT size="+2"><B>ログファイル閲覧メニュー</B></FONT></P> <HR width="75%"> <form action="../cgi-bin/mail/mail.cgi" method="post"> <CENTER> <TABLE border="0"> <TBODY> <TR> <TD>User ID:</TD> <TD colspan="2"><INPUT size="24" type="text" name="u_id"></TD> </TR> <TR> <TD>Pass Word:</TD> <TD colspan="2"><INPUT size="24" type="password" name="pass"></TD> </TR> <TR> <TD>表示するログ</TD> <TD><SELECT name="log"> <OPTION value="1"> <SCRIPT Language="JavaScript"> <!-- document.write("今月:",myYear,"年",myMonth,"月"); // --> </SCRIPT> </OPTION> <OPTION value="2"><SCRIPT Language="JavaScript"> <!-- if (myMonth == 1){ document.write("先月:",myYear-1,"年12月"); } else {document.write("先月:",myYear,"年",lastMonth,"月"); } // --> </SCRIPT> </OPTION> </SELECT></TD> <TD><INPUT type="submit" name="submit" value="閲覧"></TD> </TR> </TBODY> </TABLE> </CENTER> </FORM> </BODY> </HTML>

  • 画面の表示が出なくなりました。

    ここ1年ほどHPを営業用で開いています。 TOPに当日の曜日の表示がでるように、どこかのサンプル提供サイトからHTMLをコピーして使っていました。ところが、今日、表示が出ないことに気づきました。いつからエラーになったかわかりません。HTMLを何かのはずみで、損なったのかもしれません。 現在のHTMLを当該部分のみ表示します。 <td><b> WEEK :</b></td> <td bgcolor="black"><font size="4" color="yellow"><b><script language="JavaScript"><!--myTbl = new Array ("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");myD = new Date();myYear = myD.getYear();myYear4 = (myYear < 2000) ? myYear+1900 : myYear;myMonth = myD.getMonth() + 1;myDate = myD.getDate();myDay = myD.getDay();myHours = myD.getHours();myMinutes = myD.getMinutes();mySeconds = myD.getSeconds();myMess1 = myYear4 + "年" + myMonth + "月" + myDate + "日";myMess2 = myTbl[myDay] + "";myMess3 = myHours + "時" + myMinutes + "分" + mySeconds + "秒";myMess = myMess2;document.write( myMess );// --></script></b></font> </td> どこかにバグがあると思います。教えてください。 HTMLは自分でプログラミングしますが、CGIは全く出来ません。

    • ベストアンサー
    • HTML
  • JavaScriptの勉強を始めました。

    あるサイトを見ながらJavaScriptの勉強を始めました。 まだ初歩の初歩です。 <script language="JavaScript"> <!-- myD = new Date(); myYear = myD.getYear(); myYear4 = (myYear < 2000) ? myYear+1900 : myYear; myMess = myYear4; document.write( myMess ); --> </script> こういったコードがあったのですが、 myYear4 = (myYear < 2000) ? myYear+1900 : myYear; この部分をifで置き換えれるのかなと思い、下記のコードを作ってみました。 <script language="JavaScript"> <!-- myD = new Date(); myYear = myD.getYear(); if ( myYear < 2000 ){ myD = myYear + 1900; }else{ myD = myYear; } myMess = myYear; document.write( myMess ); --> </script> これって合っていますか? 暇なときでいいので見て下さったら助かります。 どうぞよろしくお願いします。

  • 【javascript】 年齢計算

    初心者です。 イヌでもわかるjavascript講座(http://www.red.oit-net.jp/tatsuya/java/)より拝借して、年齢計算のプログラムをつくっています。 しかし、これでやると、閏年がない年でも、フツウに計算できてしまいますし、「32日」などでも入力できてしまいます。 これを改造して、正確でない日付を入力できないようにしたいのですが、インターネットなどを調べても、どのようにしたらよいのか、見当もつかず困っております。 お手数ですが、どのようにしたらよいのか、そしてできたら、考え方などもお教えくださいませ。 以下がそのソースです。 <HTML> <HEAD> <TITLE></TITLE> <script language="javascript"> <!-- function myAge(N){ //現在から、誕生日を引き、基準日に足す //つまり、現在から、誕生日の日にち分の時間だけ引く Today = new Date(); myBirth = new Date(1970 , 0 , document.myFormAge.myAgeD.value ); myBirth.setTime(Today.getTime()-myBirth.getTime()); //求めた年月日から基準日を引く myYear = myBirth.getUTCFullYear() - document.myFormAge.myAgeY.value; myMonth = myBirth.getUTCMonth() - (document.myFormAge.myAgeM.value - 1); if(myMonth < 0){ //月がマイナスなので年から繰り下げ myYear --; myMonth += 12; } myDate = myBirth.getUTCDate(); document.myFormAge.Age.value = ""+myYear+""; } //--> </SCRIPT> </HEAD> <BODY> <FORM name="myFormAge"> 生年月日を入力してください。 <br> <br> 年(西暦)<INPUT type="text" size="4" name="myAgeY"> 月<INPUT type="text" size="2" name="myAgeM"> 日<INPUT type="text" size="2" name="myAgeD" onKeyDown="myAge(this.form)"> <br> <br> <br> <br> <br> <INPUT type="text" size="5" name="Age">歳 </FORM> </BODY> </HTML> よろしくご教授くださいませ。

  • エクセルVBAでの日付表示

    エクセル2002使用です。 すみませんが、よろしくお願いします。 変数で取得した値で、「H16.9.14」のようにセルに入れたいのですがうまくいきません。 sub 和暦() Dim myyear,mymonth,mydate myyear = 16 mymonth = 9 mydate = 14 range("A1").Value ="H" & myyear&"."&mymonth&"."&mydate End sub range("A1")の右辺をいろいろと調べて試したのですがうまくいきません。また、H16.9.14と入力できた場合も文字列ではなく日付表示書式として扱いたいです。 よろしくお願い致します。

  • JavaScriptについて

    現在JavaScriptを書いていますが下記の表記ではまったく表示できません。 <SCRIPT language="JavaScript"> <!-- document.write("ただいま"myYear"年",myMonth+1, "月",myDate,"日",myHours,"時",myMinutes,"分です"); //--> </SCRIPT> しかし、下記の表記では正常に表示できます。 <SCRIPT language="JavaScript"> <!-- with(document){ write(myYear); write("年"); write(myMonth); write("月"); write(myDate); write("日"); write(myHours); write("時"); write(myMinutes); write("分"); } //--> </SCRIPT> もちろん関数は正常に作られています。 なぜだかわかりますか? 教えてください。 以上

  • jQueryでカレンダーを作っているのですが・・・

    現在ホームページを作成していて、 年月が変わったら、自動で位置がスクロールするカレンダーを作りたいと思っています。 そこで、jQueryを使おうと思い、下記のURLを参考に入れようと思ったのですが、 http://qa.itmedia.co.jp/qa2937941.html ここに書いてあるのは、 function next() {window.scrollBy(0,500);} function last() {window.scrollBy(0,-500);} window.onload = function(){ var today = new Date(); window.scrollTo(0,today.getMonth()*0); } というjQueryで、 自動で月のみを取得してスクロールするjQueryでした。 年も反映するにはどう修正したらいいのかがわかりません。 そこで、日付表示のjQueryを参考にして、 myD = new Date(); myYear = myD.getFullYear(); myMonth = myD.getMonth() + 1; myDate = myD.getDate(); myDay = myD.getDay(); myMess1 = myYear + "" + myMonth + "" ; myMess = myMess1 + " "; document.write( myMess ); で、「20142」という(カレンダーでつけている)名前を表示するまではできました。 ですが、その名前の場所にスクロールする書き方が分かりません。 ちなみに、カレンダーは下記のURLで、 http://www.creator-web.co.jp/rigaku/calendar.html iframeで該当カレンダー部分だけ表示するようにいしています。 http://www.creator-web.co.jp/rigaku/index.html アドバイスお願いします!

  • フォームのvalueを変更する方法

    下記はjavaScriptで書いたものですが、javaScriptが有効になっていないと機能しないので perlで同じことをやりたいのですが、フォームのvalueを変更する方法とinnerHTMLの様なボタンをクリックするとテキストを変更する方法が分かりません。 ヒントでも良いので教えていただけませんか? <HTML> <HEAD><SCRIPT language="JavaScript"> <!-- function nextA(){ var data = document.formA.data.value; data++; document.formA.data.value = data; } //--> function nextB(){ var data = document.formB.data.value; data++; document.formB.data.value = data; document.getElementById("print").innerHTML = data; } //--> </SCRIPT> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY> <FORM name="formA"> <input name="data" value="1"> <INPUT type="button" value="足す" onclick="nextA()"> </FORM> <FORM name="formB"> <SPAN id="print">1</SPAN> <INPUT type="button" value="足す" onclick="nextB()"> <INPUT type="hidden" name="data" value="1" > </FORM> </BODY> </HTML>

    • ベストアンサー
    • CGI
  • JavaScriptの書き方

    C言語をすこしやって、つい最近JavaScriptを始めました。 new Date().getYear() ↑のような書き方はどうして「.(ドット)」が入るんですか?このような書き方はC言語の構造体内の変数を操作するときと似てる気がしますが、JavaScriptはどういう構造になっているんでしょうか? myDate = new Date(); myYear = myDate.getYear(); document.write(myYear); と document.write( new Date().getYear() ); は、 おなじ表示結果になりますよね。ドットで区切ってかく理由が分かりません。教えてください!

専門家に質問してみよう