让我告诉你我的代码:
$from = implode(" ",$_POST['from']);
$date_from = str_replace('/', '-', $from);
$l->from_start=date("Y-m-d", strtotime($date_from));
问题是我在我的数据库中得到了零。这很奇怪,因为当我回复from_start的值时,我得到2016-06-10,我相信它的格式正确。
db字段类型为DATE
。
数据库正在接收数据,但显然使用新插件有关日期格式的错误
有人可能提示或某事,因为我真的迷路了。
将数据插入数据库的PDO如下:
$query = 'INSERT INTO student_education (student_id,studies,school,from_start,to_end) VALUES (:a,:b,:c,:d,:e)';
$studies= $this->studies;
$school= $this->institution;
$from_start=$this->from_start;
$to_end=$this->to_end;
$stmt = $this->conn->prepare($query);
$loop = count($studies);
for($j = 0; $j < $loop; $j++) {
$studies_s = $studies[$j];
$school_s = $school[$j];
$from_s = $from_start[$j];
$to_s = $to_end[$j];
$stmt->bindValue(':a', $studentid) ;
$stmt->bindValue(':b', $studies_s);
$stmt->bindValue(':c', $school_s);
$stmt->bindValue(':d', $from_s);
$stmt->bindValue(':e', $to_s);
$stmt->execute();
}
正如我所说,数据正在插入但是对于日期字段没有发生任何事情。我的PDO代码中没有任何错误:S
答案 0 :(得分:0)
mysql日期格式为yyyy-mm-dd
不确定您使用str_replace
做了什么,但这应该有效:
$requestDate = date("Y-m-d", strtotime($_POST['from']));
答案 1 :(得分:0)
It is very strange because when I echo the value from_start I get 2016-06-10
。由于您获得了正确的日期,因此为您生成MySQL格式的日期的代码非常好。但是,假设问题可能超出您在此处发布的代码,这可能是合乎逻辑的。在行之后的某处:$l->from_start = date("Y-m-d", strtotime($date_from));
建议发布您的插入逻辑(SQL)或重新访问您的代码:
<?php
// FROM WHAT YOU SAID... THE 3 LINES OF CODE BELOW ARE "GREEN"
$from = implode(" ",$_POST['from']); //CONVERT DATE ARRAY TO STRING
$date_from = str_replace('/', '-', $from); // REPLACE SLASHES WITH DASHES
$l->from_start = date("Y-m-d", strtotime($date_from));