Zend Oracle默认日期格式


Zend Oracle default date format

在我的项目中,我将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的日期?

由于需要更改所选列(将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']));即可完成整个过程。