我正在尝试使用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日开始,或者就此而言,从来没有。这可能会破坏事情吗?