- ベストアンサー
決まった形式××××年××月××日にしたい
生年月日を入力できる掲示板のようなものを作っています。 フォーム(HTML部分)↓ - 年 | - 月 | - 日 4桁 1桁or2桁 1桁or2桁 でselectタグで記述してあります 読み込むときは↓ $calender_year = substr($calender,0,4); $calender_mon = substr($calender,4,2); $calender_day = substr($calender,6,2); こんな感じです。 年は4桁で固定されているのでよいのですが、 問題は「月」と「日」で1桁or2桁という点です。 上の読み込み方法だと 1999226 1999年2月26日 19991223 1999年12月23日 下はOKなのですが、上はNGです。 これを解消する手立てを教えてください。 スクリプトあるとうれしいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
selectタグが3つあるなら、読み込む値も3つになるはずです。 それをどこかで1つに連結して$calenderに入れているわけですから、連結しなければ良いのではないでしょうか。 おそらくスクリプトの始めのほうで、フォーム値取得→連結、をやっているところがあると思います。
その他の回答 (2)
- moon_night
- ベストアンサー率32% (598/1831)
年月日を連結する場合は、必ず桁を合わせてください。 フォームで入力欄が違えば違う値で飛んでくるはずです。 そうしないと 2000111 の場合だと、1/11 なのか 11/1 なのかの判断が付きません。 $calender_year = sprintf("%04d",$y); $calender_mon = sprintf("%02d",$m); $calender_day = sprintf("%02d",$d);
- tandes
- ベストアンサー率58% (10/17)
フォームで入力された年月日をそれぞれ$y, $m, $dに読み込んでるとして、 $calender = $y . $m . $d としてるということですよね? そこを $calender=sprintf("%04d%02d%02d", $y, $m, $d); にすればよいと思います。