とあるセクシーなデータ分析官

を目指す渋谷で働くソーシャルゲーム分析者の卵

symfonyでdatetime形式のカラムデータを、形式を指定して取得してくる

symfonyではDBのカラムとしてcreated_atやupdated_atなどを
datetime形式で作っておくと、データをinsertした時に自動で入れてくれますが、
今回は出力時に、時刻の取得のしかたを指定して取る方法です。


通常

echo $data->getCreatedAt();
//2009/10/24

とすると、2009/10/24のように固定形式で時刻が帰ってきますが、


PHPのdate関数の引数と同じように引数を設定することで

echo $date->getCreatedAt('m d');
//10 24

とすると、10 24として取り出すことができる!



っていうのがomのpeerじゃないBaseなんちゃらに書いてありました!!

    public function getCreatedAt($format = 'Y-m-d H:i:s')
    {
   
        if ($this->created_at === null || $this->created_at === '') {
            return null;
        } elseif (!is_int($this->created_at)) {
                        $ts = strtotime($this->created_at);
            if ($ts === -1 || $ts === false) {              throw new PropelException("Unable to parse value of [created_at] as date/time value: " . var_export($this->created_at, true));
            }
        } else {
            $ts = $this->created_at;
        }
        if ($format === null) {
            return $ts;
        } elseif (strpos($format, '%') !== false) {
            return strftime($format, $ts);
        } else {
            return date($format, $ts);
        }
    }