dポイントプレゼントキャンペーン実施中!

いつもお世話になっています。

yahoopipesでページからrssを作っています。
「2012/12/12」などとなっている数字をpubdateとしてソートしたのですが、一桁の月日の場合「2012/1/1」など二桁になっていないためか、うまく降順に並びません。
二桁の数字はそのままで、一桁の数字は頭に0をつけて二桁にする正規表現はどう書けばよいのでしょうか?
よろしくお願いします。

A 回答 (1件)

まぁいろいろあるとは思いますが、e修飾子で日付関数に


投げてしまうというのが楽です

<?PHP
$str="hoge2012/1/9fuga";
$pattern="/\d{4}\/\d{1,2}\/\d{1,2}/e";
$replacement="date('Y/m/d',strtotime('$0'));";
$str=preg_replace($pattern,$replacement,$str);
print $str;
?>
    • good
    • 0
この回答へのお礼

ありがとうございます!
上記の方法だとyahoopipesでY/m/dとそのまま置換されてしまったので下記のサイトを参考にしました
http://d.hatena.ne.jp/seuzo/20100113/1263312410
一度「○年○月○日」に置換してから、一桁の月・日を0$1に置換するとうまくソートできました!

お礼日時:2012/03/06 12:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!