我正在尝试使用serialize()将日期值存储在MySQL数据库中。但是,数据库中的结果被视为“ 1969-12-31”。我几乎可以肯定,这是因为我的ajax调用中的数据被序列化的方式。

以下是代码片段。我要去哪里错了?

Ajax部分:

data: decodeURIComponent(form.serialize()),


序列化数据的Result部分是这样的(当我在控制台中查看序列化数据时):

&pur-date=2014+/+02+/+31


^我认为导致错误的原因是“ +”。

在我的模型(Codeigniter)中:

$date = date("Y-m-d", strtotime($this->input->post('pur-date')));


例如,如果将strtotime值替换为“ 2014-10-10”,则数据已正确存储到数据库中。因此,问题必须与传入的帖子数据有关。

注意,db中的列类型为date

任何人?

最佳答案

我不确定是怎么回事,因为未提供测试数据(来自表单),但是我将立即检查以下内容:


Javascript以毫秒为单位,Java以秒为单位,PHP以秒为单位:这是您最可能遇到的问题。
我不知道2014-02-31来自哪里。从今年2月31日开始,或者就此而言,从来没有。这可能会破坏事情吗?

09-26 19:10
查看更多