在我的项目中,我将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']));
即可完成整个过程。