在我的数据库中,出生日期以Y-m-d格式存储,例如。1965-09-04当cakePHP从数据库获取数据时,它会在内部将这些日期转换为d/m/y格式,因此1965-09-04变成了4/9/65。
现在,当我尝试将此日期转换为dd/mm/YY格式(1965/04/09/1965)时,结果为(04/09/2065)。
简而言之,我不希望cakephp在从数据库获取数据时转换日期格式。
发布于 2016-08-02 21:56:55
找到答案了。当数据从控制器传送到视图时,它实际上是格式化日期。使用bootstrap文件更改cakephp的默认日期格式。在文件中添加了以下内容:
Cake\I18n\Date::setToStringFormat('YYYY-MM-dd');
Cake\I18n\FrozenDate::setToStringFormat('YYYY-MM-dd');
\Cake\Database\Type::build('date')
->useImmutable()
->useLocaleParser()
->setLocaleFormat('YYYY-MM-dd');
发布于 2016-08-03 06:50:33
简单地说,如果你想改变日期格式,那么根据cakephp规则,你可以像这样使用。首先更改数据库中的字段数据类型int,然后。在给定的模式中,使用这些函数。
public function beforeSave(){
$this->data['TableName']['FieldName'] = time();
}
public function afterFind($results, $primary = false) {
foreach ($results as $key => $val) {
if (isset($val['TableName']['FieldName'])) {
$results[$key]['TableName']['FieldName'] = $this->dateFormatAfterFind(
$val['TableName']['FieldName']
);
}
}
return $results;
}
public function dateFormatAfterFind($dateString) {
return date("Y-m-d H:m",$dateString);
}
我希望这对你有帮助。
https://stackoverflow.com/questions/38729040
复制