• 締切済み

PHPのプログラムについて

php初心者です。 日付が表示されるコンテンツで、 例:[2014/01/04 21:50]タイトル⚫︎⚫︎ の、[]内の時間のみ(21:50)の部分を削除したいのですが、どのようにすれば良いか教えてください。 また、コンテンツの中身が増えていった場合、その都度自動で[]内の時間のみの部分を削除出来ればなお良いなと思っています。 どうぞよろしくお願いします。

みんなの回答

回答No.3

基本的にONEONE様の仰るように以下のように対応されるのが良いかと思います。 echo date('Y/m/d', strtotime($time)); ※$timeに2014/01/04 21:50が入っていると考えてください。 補足的名説明になりますが、恐らくDBの方に保存されているデータの方がdatetime型になっており、保存されているデータを取得してきてそのまま出力されているため、例のように出力されているのかと思います。 もし、今後時間部分のデータを使う機会のないテーブルなのでしたら、datetime型をdate型にしてしまえば、わざわざ日付を整形しなおす必要はなくなりますので、そちらも一つの考え方かと思います。 また、phpを最初に始められた方にオススメのサイトを参考URLに記載させていただきますので、お時間があればご覧下さい。 日付や時刻の扱い方なども記載されていて、とても参考になるサイトです。

参考URL:
http://ja.phptherightway.com/
snya03
質問者

お礼

遅くなってしまい申し訳ありません。みなさまのお陰で理解することが出来ました!

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

日時としての整合性をチェックしなくていいならざっくりこんなかんじで ちなみに以下はかっこが全角の角括弧の場合で、半角の場合はエスケープ処理が必要。 <?PHP $str=<<<eof 例:<br> [2014/01/04 21:50]タイトル●●●<br> [2014/01/05 00:00]タイトル■■■<br> [9999/99/99 99:99]日付けとしておかしくてもOK<br> 2015/12/01 12:24 かっこなしは対象外<br> [2014/01/06 12:34:56]秒まではいると対象外<br> eof; $pattern="/(?<=[\d{4}\/\d{2}\/\d{2}) \d{2}:\d{2}(?=])/"; $replacement=""; $str=preg_replace($pattern,$replacement,$str); print $str;

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.1

2014/01/04 21:50 という文字列から変換するなら date('y/m/d', strtotime('2014/01/04 21:50'); とすればよいかと思います。 が、現実的にはその日付はDBから取得した後になんらかの方法でフォーマットされていると思うので、そこのロジックを見直してはいかがかなと思います。

関連するQ&A