ブログアプリ制作

今日が火曜日っていうのを忘れていて、
すっかり月曜日だと思い込んでいました。
燃えるゴミ出そうと思ったら、
今日火曜日だからゴミの日じゃなくて、
ゴミが出せませんでした。


という、
ちょっとした、うっかり話でした。


本日のメニュー

■ブログアプリ制作

  • 記事一覧
  • 記事詳細          
  • 記事登録


「DBのcreated_atから、日付だけ取り出したい」


データベースのcreated_atには
データがこのように入ってます。

2009-07-21 14:33:30 

ここから、日付だけ(2009-07-21)を取り出したいなって、
思ったんですが…


explodeでハイフンで区切ったら、後ろまでついてきちゃうし、
これは正規表現で取り出すのか??
とか、色々考えてちょっと正規表現見直したりしてたわけです。


しかし、先輩に聞いたら
なんとあっさり問題解決!!


symfonyには、うまいぐあいなメソッドが元々あって、
getCreatedAt()にphpのdate関数の引数のように引数を渡してあげるだけで、
実はとりたいものがとれたのです。


本日、一番感動した。
これが、今まで…

echo $data->getCreatedAt();
//2009-07-21 14:33:30 

引数与えてみる。

echo $data->getCreatedAt('Y-m-d');
//2009-07-21

とれたー!!
なーんだ簡単じゃないか…。


lib/model/om/Base〜.phpにこんなのがありました。

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);
  }
}

どうやらここで、symfonyが勝手にうまいことやってくれてたわけか。
まだまだ、symfonyは奥が深い。
ってか、symfonyがやってくれていることを知らなすぎっ!!