Zend Oracle默认日期格式

时间:2012-07-09 10:38:18

标签: php oracle zend-framework

在我的项目中,我正在使用Zend框架和Oracle。当我试图以这样的方式获取信息时:

$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格式获取日期?

1 个答案:

答案 0 :(得分:2)

由于您需要更改所选的列(将CREATION_DATE更改为TO_CHAR(CREATION_DATE, 'dd.MM.YYYY')),您需要准备一个SELECT对象,指定所需的列,然后将其传递给fetchAll in $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']));整个事情。