- ベストアンサー
PHP5 文字列、日付データの表示方法
PHP初心者です。 ログデータにある文字列を置換して表示したいです。 例えば「2009/04/08」という文字列があって、 「4/8」という文字列のみで表現したい場合、 どうすればよいのでしょうか? 正規表現でどうにかなりますか?? ご回答いただけましたら幸いです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>> 「4/8」という文字列のみで表現したい場合、 正規表現での例を示します <?php $dt="2009/04/08"; echo preg_replace('|\d+/0?(\d+)/0?(\d+)|','\1/\2',$dt); ?>
その他の回答 (2)
- gri_hoge
- ベストアンサー率33% (1/3)
「/」で区切られるというフォーマットが同じであれば普通に変数にしてしまえばよいのでは?例えばPOSTであれば $date = $_POST[x]; $a = split("/", $date); の様な感じで。
お礼
ご回答いただきましてありがとうございます。 上記記述をベースに色々試してみます! 迅速なご回答、本当にありがとうございました!
- gri_hoge
- ベストアンサー率33% (1/3)
正規表現でも可能ですが、date関数を使われた方がシンプルな上に応用もできて良いのではないでしょうか? $a = split("/", "2009/04/08"); //文字列を分割 $b = mktime(0,0,0,$a[1],$a[2],$a[0]); //タイムスタンプに変換 echo date("n/j",$b); //出力 「4/8」と表示されます。 これですと、「4月8日」にしたければ echo date("n月j日",$b); とするだけでOKですし、少し手を加えるだけで曜日の表示なども可能になります。 ご参考になれば幸いです。
補足
ご回答ありがとうございます。 gri_hogeさんの返答くださった内容で実は挑戦してたのですが、 どうしてもエラーが返ってきてしまい、 質問を掲載させていただいておりました。 $a = split("/", "2009/04/08"); のように文字列が固定ではなく、変動する場合は どのように記述したらよろしいのでしょうか? mpxさんのくださった回答で処理的に解決しているのですが、 後学のため、さらにご返答いただけましたら幸いです。 よろしくお願いいたします。
お礼
迅速なご回答ありがとうございます。 こちらの方法でうまく表示することができました!