2011-05-23 58 views
2

我一直試圖插入一個時間戳到數據庫與$ rowUser-> fecha = new Zend_Date();但是當我檢查數據庫時,我總是在該字段中找到'0000-00-00 00:00:00'。如何使用Zend_Date在db中存儲時間戳?

我用MySQL的ALTER語句添加了'fecha'列(帶有時間戳的那一列),所以也許這就是這個問題......我不知道。不知道是否我的zend或SQL失敗。請Mods,如果問題看起來模糊,請不要關閉該主題,如有必要,我會更改或查找更多信息。

+0

如果你把一個日期保持在那裏,它能工作嗎? – wallyk 2011-05-23 22:33:21

+0

@wallyk,由於某種原因,它似乎改變了fecha值,當我更新表中的其他字段,因爲它的設置ON UPDATE CURRENT_TIMESTAMP ...但我不知道我應該離開那裏,而如果我想要它做創建行上的同樣的東西 – 2011-05-23 22:55:14

回答

6

對於誰可能關心此問題或未來可能會有類似問題,我找到了解決辦法。在用戶模式:

$rowUser = $this->createRow(); 

    if($rowUser) { 
     // update the row values 
     $rowUser->email = $email; 
     $rowUser->password = md5($password); 
     $rowUser->url = $url; 
     $rowUser->responsable = $responsable; 
     $rowUser->role = $role; 
     $rowUser->fecha = Zend_Date::now()->toString('yyyyMMddHHmmss');; // This is the important bit 
     $rowUser->save(); 
     //return the new user 
     return $rowUser; 
    } 

你也可以使用$ rowUser->出生日期=新Zend_Db_Expr( 'NOW()');但如果有數據庫遷移,這可能會很麻煩。

+0

「rowUser-> fecha = Zend_Date :: now() - > toString('yyyyMMddHHmmss');;」 – Josh 2013-01-30 14:56:18

3

我相信你需要使用類似的東西來

$rowUser->fecha = new Zend_Db_Expr('NOW()'); 

我認爲你可以使用Zend_Date組件,但你必須把它轉換爲正確格式的字符串表示插入。

相關問題