PHPで日付データを指定したフォーマットで出力する

データベースとかに格納された日付データを表示する時に、やっぱそのまま表示するんじゃなくてフォーマットを整えて出力したい。年月日の形とか。
例えばMySQLに格納されてる日付データは yyyy-mm-dd H:i:s って風になってるからこれを別の形に変えたい。
よくやる処理なのに毎回必要なときになって一から作ってるんで今回作ったやつをメモっとく。ちなみに時分秒は対応させてないけど少し変えればできるからこれを基本形で。

<?php
function date_format($date, $format = 'Y/m/d') {
	$d = explode('-', $date);
	
	// 空白以降を無視。時分秒のデータほしければここは別処理
	$pos = strpos($d[2], ' ');
	$d[2] = $pos !== false ? substr($d[2], 0,  $pos) : $d[2];
	
	// 正規表現文字列をエスケープ
	$format = preg_quote($format);
	
	$pattern = array('/Y/', '/m/', '/d/');
	$formatting = preg_replace($pattern, $d, $format);
	
	return $formatting;
}
?>
<?php
    echo date_format('2011-02-25', 'Y年m月d日'); // 2011年2月25日
?>

2011/03/01

微妙にうまく取れてなかったから少し修正。
あとまぁあるだろうなーとは思ってたけど、DateTimeっていうPHP5から使えるクラスで、formatというメソッドが定義されるもんだからformatっていう名前使えなかった。というかまぁこのメソッドと機能もろかぶりしてるわけだけど。ということで、PHP4用にちょっと使うスニペットぐらいの用途で。(PHP4なんてできれば使いたくない)