• ベストアンサー

テキストボックスから入力された日時を受け取ってそれを比較したい。

たびたび失礼いたします。ネットで検索しましたが、なかなか参考になる資料がなかったもので質問させていただきました。 今、しようと思っていることは、二つのテキストボックスA,Bがあるとします。 この中に YYYY/MM/DDという形式(例:2004/12/31)で入力します。 もう一つにも入力し、この二つの日時を比較し、どちらが最近のものか調べたいのです。 (本当の使用方法は、データベースからこの二つの期間を指定してその範囲のデータを抜き出すこと。) 仕事終わった後に自宅でがんばっているのですが、詰まってしまって白髪が増えそうです・・・よろしくお願いします!まだあと数個PHPの悩みが・・・(^_^;)

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

YYYY/MM/DDという形式にちゃんとなっているなら、 単純に文字列で比較してもいいと思いますけど、 日付に変換するということであれば $date1 = strtotime($dateStr1); $date2 = strtotime($dateStr2); $dateNew=($date2 > $date1) ? $date2 : $date1); みたいな感じでいいと思います。

tomofriend
質問者

お礼

ありがとうございます!無事できました! しかも、 2004/12/01 11:01 と 2004/12/01 11:02 でも比較できました。No.1さんも同じことを仰っていたのがようやく理解できました。 本当にありがとうございました。

その他の回答 (1)

回答No.1

たとえば、期間:[A]~[B]という形を想定しているのならば、大雑把ながらこういうロジックでいかがでしょうか。 (1) 当然A<Bでなければならないので、それ以外の入力があった場合は、if文を書いてエラーとしてはじいてしまいます。(もちろん、それ以前に入力値が、YYYY/MM/DD形式になっているかもチェックが必要ですが。。。) (2)エラーを通過したAとBの値をSELECT文の条件としてバインドします。たとえば、 select * from TABLE where (DATE between $date_a and $date_b); みたいな感じで。

tomofriend
質問者

お礼

実際に文字列のまま比較したところ、きちんと判断できました!SQLも教えていただいてありがとうございます。もう少しで僕の考えているものができそうです。ありがとうございました。

tomofriend
質問者

補足

回答ありがとうございます。 仰るとおりなのですが、一つわからないのが、 $date_a の中身は 2003/01/01、$date_b が 2004/01/01 だとすると(変数の型はchar?)そのまま比較できるのでしょうか?

関連するQ&A