我想将日期保存到数据库中,但当我提交表格时,会将日期保存为1970-01-01


I want to save date into a database but when i submit the form is saves the date as 1970-01-01

这是用于存储日期的模型。

public function add_client() {
        $sqlDaye = "YYYY-MM-DD";
        $data = array(
            'name' => $this->input->post('client_name'),
            'industry_id' => $this->input->post('industry'),
            'user_id' => $this->input->post('users'),
            'status_id' => $this->input->post('status'),
            'startdate' => date("Y-m-d H:i:s", strtotime(str_replace('/', '-', $sqlDaye))),
            'enddate' => date("Y-m-d H:i:s", strtotime(str_replace('/', '-', $sqlDaye))),
            'rates' => $this->input->post('rates')
        );
        $this->db->insert('clients', $data);
    }
 $sqlDaye = "YYYY-MM-DD";

YYYY-MM-DD是有效的格式,而不是有效的日期。您在上面运行strtotime,这会导致时间戳无效,并且您会得到返回的默认值

strtotime

该函数期望得到一个包含英文日期格式的字符串,并将尝试将该格式解析为Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数),相对于现在给出的时间戳,或者如果没有提供当前时间,则解析为当前时间。

你必须在日期上运行,而不是在格式上。比如试试这个

echo date("Y-m-d H:i:s", strtotime('2014-10-10'));
                                    ^
$sqlDaye = "YYYY-MM-DD";

是一个字符串。

不能在日期中输入字符串。"2014-11-10"是一个日期。