非法的00:00:00使用codeigniter通过php发送到mysql的时间戳

时间:2011-06-02 13:14:27

标签: php mysql codeigniter timestamp

这是我的CodeIgniter模型中的Database_update_entry函数,该函数在成功提交表单后执行。

<?php
    function update_entry(){
        $data = array(
            'sl' => $this->input->post('item_sl'),
            'item_name' => $this->input->post('item_name'),
            'img_url' => $this->input->post('img_url'),
            'sound_url' => $this->input->post('sound_url'),
            'price' => $this->input->post('price'),
            'unit' => $this->input->post('unit'),
            'timestamp' => time(),
        );
        echo "current time: ".  time();
        $this->db->update(MY_TABLE_NAME, $data);
    }
?>

数据库查询执行正常....但是设置到mysql表中的时间是 0000-00-00 00:00:00 ,而<?php echo time() ?>语句在浏览器中显示 1307018223 ....这是一个有效的UNIX时间戳...你可以check the timestamp validity here

这是在成功update_query http://s3.amazonaws.com/awesome_screenshot/658523?AWSAccessKeyId=0R7FMW7AXRVCYMAPTPR2&Expires=1307020816&Signature=AncPjnzG9p9QTX7zebZp7c9teB0%3D

之后从mySQL表中获取数据的表的屏幕截图

我做错了什么???我怎样才能将法律时间戳从我的php传递给mySQL? [附注:我已经检查过我的mysql表中的timestamp字段是时间戳字段]

4 个答案:

答案 0 :(得分:5)

mysql timestamp字段接受yyyy-mm-dd H:i:s日期格式,因此您必须将日期传递给此格式而不是UNIX时间戳

而不是

'timestamp' => time()

使用

'timestamp' => date('Y-m-d H:i:s')

如果您确实要存储UNIX time stamp,请将字段类型更改为CHAR

答案 1 :(得分:3)

使用date('Y-m-d H:i:s', time());

答案 2 :(得分:3)

您需要提供时间戳字符串,而不是整数。尝试:

'timestamp' => date('Y-m-d H:i:s', time()),

答案 3 :(得分:2)

格式时间:date('Y-m-d H:i:s', time())