在我的项目中,我正在使用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
格式获取日期?
答案 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']));
整个事情。