0

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

4

1 回答 1

2

由于您需要更改您选择的列(更改CREATION_DATETO_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 回答