2011-05-23 61 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组件,但你必须把它转换为正确格式的字符串表示插入。

相关问题