0

私のプロジェクトでは、OracleでZendフレームワークを使用しています。私がこのような方法で情報を取得しようとしているとき:

$comments = $this->commentModel->fetchAll($where, array('PERSON_COMMENT_ID ASC'));

$list = array();
foreach ($comments as $comment) {
    $list[] = array(
      'text' => "{$comment['TEXT']}",
      'date' => $comment['CREATION_DATE'],
      'comment_id' => "{$comment['PERSON_COMMENT_ID']}",
      'person_id' => "{$person_id}"
    );
}

Oracleは日付を形式で返しますdd.MM.YY

日付をフォーマットで取得するにはどうすればよいですdd.MM.YYYYか?

4

1 に答える 1

2

選択する列を変更する ( に変更CREATION_DATEするTO_CHAR(CREATION_DATE, 'dd.MM.YYYY')) 必要があるため、SELECT オブジェクトを準備し、目的の列を指定して、引数fetchAllの代わりに に渡します。$where

そう

$select = $this->commentModel->select()
    ->columns(array(..., new Zend_Db_Expr("TO_CHAR(CREATION_DATE, 'dd.MM.YYYY')")))
    ->where(...);

$comments = $this->commentModel->fetchAll($select, array('PERSON_COMMENT_ID ASC'));

それが役立つことを願っています。また、私はこれをテストしていないので、正しく解析および/または実行される保証はありません;)

編集:

とにかく各行を反復処理するのでdate($format, strtotime($comment['CREATION_DATE']));、すべてを処理できます。

于 2012-07-09T12:44:10.133 に答える