【发布时间】:2014-10-15 01:03:35
【问题描述】:
我正在尝试使用serialize() 将日期值存储在 MySQL 数据库中。但是,数据库中的结果被视为“1969-12-31”。我几乎可以肯定这是因为数据在我的 ajax 调用中被序列化的方式。
这里是代码 sn-ps。我哪里错了?
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。
有人吗?
【问题讨论】:
-
看起来你的约会中有空格。删除它们。
-
strtotime 可以处理数量惊人的格式。如果您向它传递一个它无法识别的字符串,那么该格式将不是其中之一。只要去掉空格,你就可以了
-
猜猜我遇到的问题(当我尝试完全按照您的建议进行操作时)是我使用了
replace()- 这不起作用。如何删除序列化数据中的空格? -
echo $this->input->post('pur_date');显示什么? -
我的
post实际上有一个拼写错误。应该是pur-date而不是pur_date。但是,我仍然没有得到正确的日期。回声是这样的:2014+/+02+/+31
标签: php jquery mysql ajax codeigniter