2016-06-10 124 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));