日期格式问题php

时间:2016-06-10 01:36:25

标签: php mysql

让我告诉你我的代码:

$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

2 个答案:

答案 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));