• 締切済み

文字列置換

PHPでの文字列置換についての質問です。 文字列を受け取った時には [09/06/04 21:01:05] といった値で受け取ります。これを [6月4日 21時1分] といった値で返そうと考えています。 str_replace、explodeでの方法も考えましたがあまりににくどい処理になるため、断念しました。 なにか他に手はないものでしょうか?? よろしければ回答お願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

#2の方は質問の条件通りでないのですが、 $ans = date( 'n月j日 G時i分', strtotime('20'.$str)); にすれば、正しく日時を解釈できます。 分の先頭ゼロ無しの書式は無いので、そこにこだわるなら、 $ans = str_replace('時0','時',date( 'n月j日 G時i分', strtotime('20'.$str)));

ARCIE
質問者

お礼

遅くなりました申し訳ありません。 ありがとうございました。

  • Suzi
  • ベストアンサー率38% (130/334)
回答No.2

以下のでどうでしょうか。 --------------------------- $str = '09/06/04 21:01:05'; $temp = strtotime($str); print date( 'n月j日 H時i分', $temp); ---------------------------  ↓ 9月6日 21時01分

ARCIE
質問者

お礼

遅くなりました申し訳ありません。 ありがとうございました。

回答No.1

$str = '09/06/04 21:01:05'; $result = preg_replace('|^0{0,1}([0-9]{1,2})/0{0,1}([0-9]{1,2})/0{0,1}([0-9]{1,2}) 0{0,1}([0-9]{1,2}):0{0,1}([0-9]{1,2}):0{0,1}([0-9]{1,2})$|', '$2月$3日 $4時$5分', $str); echo $result; こんな感じでいかがでしょうか。正規表現です。 正規表現はあまり詳しくないので、もう少しいい方法があるかもしれません・・・

ARCIE
質問者

お礼

遅くなりました申し訳ありません。 ありがとうございました。