プロが教えるわが家の防犯対策術!

現在、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";

というコードを記述しております(これはネットを参考にしました)。
これでプルダウンの表示自体は出来たのですが、実際にここから値を取得するにはどうすれば良いかが分かりません・・・。

ご教授お願いいたします。

A 回答 (5件)

>、実際にここから値を取得するにはどうすれば良いかが分かりません・・・。



formでサブミットすればいいのでは?
$_REQUEST["year"]に年のデータがはいってます。あとはmon,dayも同様
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!
それぞれ値の取得が出来ましたm(__)m

こういった日付の処理の仕方ってどこかに詳しく記載されていたりしないですかね・・・なんて人や物に頼ってちゃダメだとは思いますが・・・・orz

年月日をテーブルの1カラムに入れたいのですが、「200969」をゼロ埋めして「20090609」のようにするのはガリガリソースでいじるしか無いでしょうか?
回答欄にまた質問をしてしまって申し訳ないですが、もし可能でしたら教えてくださいm(__)m

お礼日時:2009/06/09 15:38

>date関数はあくまで「現在」を返すんですよね?


これがちょっと気になったので横から失礼します

data関数は date (フォーマット, 日時);
で任意の形式で日付の表示を行うので、 =現在ではありません

日時の部分に任意のタイムスタンプを入れれば、そのタイムスタンプの
日付が表示されます(言い回しが正しいかちょっと自信無いのですが…)

date("Y/m/d",time()); なら現在日を 0000/00/00 形式で表示
date("Y/m/d",time()-86400); なら昨日の日付を表示
といった感じです
    • good
    • 0
この回答へのお礼

ご回答ありがとうございますm(__)m

結果としては、思った通りに動作するようになりました。
方法は、テーブルには文字列として「20090609」が入っている状態。
それを取得して「substr関数」で年・月・日に分割。
それぞれの値を「$today」の「year」「mon」「mday」に代入。

これで質問欄に記載したプルダウン生成処理にてテーブルから取得した日付での表示が出来ました。

ご回答くださった皆さん、こちらにてお礼をまとめさせていただきます。本当にありがとうございましたm(__)m

お礼日時:2009/06/10 11:49

>逆に、「20090609」という文字列をテーブルから取得した後、


フォームの日付プルダウンへセットする、なんて事は出来るのでしょうか?
(フォームを作り直すしか無い?)

SQLiteを使った事がないので何ともいえませんが・・・
調べてみたところSQLiteにはカラムの型に日付型がないようですね。

まず、日付だと分かるように値を挿入し
http://study.rakuto.net/php/sqlitetips/date/
フォーマットを使い日付として取得するみたいですね・・・
http://study.rakuto.net/php/sqlitetips/datefunc/

strftime関数で「年」「月」「日」を取得してみてはどうでしょうか?

間違ってたらお役に立てずにすみません。
    • good
    • 0

ゼロ埋めですが、取得した値を



$value = sprintf( "%02d", $value);

でゼロ埋め2桁にすることができます。

参考URL:http://jp.php.net/manual/ja/function.sprintf.php
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
まさにこの方法でゼロパディングしました。

ありがとうございますm(__)m

ちなみに、一つ前のお礼の欄に記入した内容もご存知でしたらご教授していただけませんでしょうか?

よろしくお願いいたします。

お礼日時:2009/06/09 17:12

>こういった日付の処理の仕方ってどこかに詳しく記載されていたりしないですかね・・・なんて人や物に頼ってちゃダメだとは思いますが・・・・orz



>年月日をテーブルの1カラムに入れたいのですが、「200969」をゼロ埋めして「20090609」のようにするのはガリガリソースでいじるしか無いでしょうか?

date()関数のフォーマット文字「m」や「d」を利用されてみてはどうでしょうか?

詳しくは、こちらのサイトをご覧ください。
http://php.xenophy.com/date-time/index.html
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

date関数はあくまで「現在」を返すんですよね?

自分で色々調べて、「sprintf」でゼロパディングする方法で
出来ました。

ありがとうございましたm(__)m

逆に、「20090609」という文字列をテーブルから取得した後、
フォームの日付プルダウンへセットする、なんて事は出来るのでしょうか?
(フォームを作り直すしか無い?)

お礼日時:2009/06/09 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!