2012-11-07 57 views

回答

3

一種選擇是將日期轉換爲人類可讀的格式以顯示它,然後在保存之前回到數據庫所需的格式。您可以編輯/創建模型中的afterFind()方法將日期轉換爲人類可讀的格式,像這樣:

public function afterFind() 
{ 
    $newDate = DateTime::createFromFormat('d-m-Y H:i:s', $this->datetime); 
    $this->datetime = $newDate->format('d-m-Y'); 

    return parent::afterFind(); 
} 

而你又通過編輯/保存創建模型的beforeSave()方法之前,例如像:

public function beforeSave() 
{ 
    $newDate = DateTime::createFromFormat('d-m-Y', $this->datetime); 
    $this->datetime = $newDate->format('d-m-Y H:i:s'); 

    return parent::beforeSave(); 
} 

請注意,當您保存時,上述示例中的小時,分​​鍾和秒將始終爲0。您還需要進行一些驗證,以確保您的用戶輸入也是正確的d-m-Y格式,否則日期轉換將不起作用。

*固定錯字newdate-> newDate

+0

謝謝,幫了我很多! –

+0

記住'DateTime :: createFromFormat()'可從PHP 5.3.x – GusDeCooL