- ベストアンサー
datetime型、未入力時の日時表示について
PHP&MySQL初心者です。 同窓会の申し込みフォーム作成していますが、日時表示について質問です。 参加希望日時をカレンダー入力させて、データベースに登録しています。 日時はカラムを分けずにまとめてdatetime型にしています。 ■第一希望 [カレンダー入力](年月日時分をまとめて) ■第二希望 [カレンダー入力](年月日時分をまとめて) →データベース(mySQL)には、 datetime型「2016-01-05 02:50:00」形式で登録。 カレンダー入力せずにINSERTされたとき、datetime型だと、 「0000-00-00 00:00:00」で登録されますが、 この値を、date('Y年n月j日 g時i分', strtotime(カラム値)); で読み出すと、「1970 年 1 月 1 日 00:00:00」と表示されます。 このままではまずいので、単純に空欄としたいのです。 カレンダー入力されなかったとき、つまり、「0000-00-00 00:00:00」で登録されているとき、 日時表示を空欄にするスマートな方法はありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
if(カラム値,date('Y年n月j日 g時i分', strtotime(カラム値)),"")
その他の回答 (1)
- paradoxica
- ベストアンサー率65% (60/91)
MySQL側の日時を挿入するカラムに null が入る事を許すようにして、 MySQLからデータを取得してきた際に PHP側で以下のように null チェックをしてあげれば良いと思います。 if ( !is_null( カラム値 ) ) { ...... } 余談ですが、 "「1970 年 1 月 1 日 00:00:00」" これはUNIX時間というので、覚えておくと何かと便利です。 https://ja.wikipedia.org/wiki/UNIX%E6%99%82%E9%96%93
お礼
ありがとうございました。 解決しました。 UNIX時間、という言葉も教えていただきありがとうございます。
お礼
ありがとうございます。解決しました。