在我的數據庫中,出生日期以Y-m-d格式存儲,例如。 1965年9月4日。當CakePHP取數據庫時,其內部將這些日期轉換爲d/m/y格式,因此1965-09-04變爲4/9/65。CakePHP日期格式從數據庫中提取
現在,當我嘗試將此日期轉換爲dd/mm/YY格式(04/09/1965)時,它會給出(04/09/2065)。
小故事,我不希望cakephp在從數據庫中提取時轉換日期格式。
在我的數據庫中,出生日期以Y-m-d格式存儲,例如。 1965年9月4日。當CakePHP取數據庫時,其內部將這些日期轉換爲d/m/y格式,因此1965-09-04變爲4/9/65。CakePHP日期格式從數據庫中提取
現在,當我嘗試將此日期轉換爲dd/mm/YY格式(04/09/1965)時,它會給出(04/09/2065)。
小故事,我不希望cakephp在從數據庫中提取時轉換日期格式。
找到了答案。它實際上是格式化日期,而數據是從控制器到視圖。使用引導文件更改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');
簡單,如果你想根據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);
}
我希望這會爲你
其中CakePHP中,2個或3?據我所知,CakePHP的不轉換日期。你的模型中有beforeSave嗎? – giuseppe
其cakePHP 3.不,日期正確保存在數據庫中,因此它不能在保存之前。它以錯誤的格式出現在視圖中。 – Sourabh