2016-06-10 170 views
0

让我告诉你我的代码:日期格式问题PHP

$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

Y-M-d是正确的格式。我认为str_replace可能是不必要的,字符串到时间会识别m/d/Y,如果你有2016-06-10那么这个问题可能在其他地方。您应该检查用于插入记录的实际sql。 – ArtisticPhoenix

回答

0

MySQL的日期格式为yyyy-mm-dd

不知道你与str_replace做什么,但这应该工作:

$requestDate = date("Y-m-d", strtotime($_POST['from']));

+0

这是他们已经有的东西( - 不必要的字符串替换),请参阅'我回应价值from_start我得到2016-06-10',这可能是问题进一步向下他们插入记录。 – ArtisticPhoenix

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