2015-09-04 89 views
-1
  1. 我有一個帶有日期字段的表單。
  2. 我用jquery datepicker選擇一個日期。格式是mm/dd/yyyy。
  3. 日期插入數據庫像0000-00-00。
  4. 當我使用die($ startdate);這會在取消註釋時以正確的格式輸出正確的日期。

DB類型:日期將mm/dd/yyy轉換爲mysql格式

代碼:

$startdate = date('Y-m-d', strtotime($_POST['startdate'])); 
    //die($startdate); //<--outputs the correct date in the correct format when uncommented. 

    try { 

$stmt = $db->prepare('INSERT INTO table (firstname,lastname,startdate) VALUES (:firstname, :lastname, :startdate)'); 
    $stmt->execute(array(
    ':firstname' => $_POST['firstname'], 
    ':lastname' => $_POST['lastname'], 
    ':startdate' => $_POST['startdate'], 

    )); 

    } 

我也試過

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

在try {},但也不管用。

我在做什麼錯?

這是約翰孔德。我相信這是非常簡單的,這是不同的,爲什麼它不是重複的。如果您沒有注意到我的代碼中存在「錯誤」。我需要幫助找到問題。馬克發現它,現在它可以工作。我仍然想知道爲什麼這很難理解。

+1

此問題已在stackoverflow上多次詢問。請搜索它,你一定會找到你的答案。 –

回答

1

現貨的區別:

$startdate = date('Y-m-d', strtotime($_POST['startdate'])); 
^^^^^^^^^^ 

    ':startdate' => $_POST['startdate'], 
        ^^^^^^^^^^^^^^^^^^^^ 

您正確地轉換日期,但隨後在查詢中使用原始未轉換的版本。

+0

謝謝馬克。我看到他們是一樣的,我對此很新。我假設$ startdate = date('Y-m-d',strtotime($ _ POST ['startdate']));應該像$ startdatediff = date('Y-m-d',strtotime($ _ POST ['startdate'])); ?我只是做了,但數據庫仍然顯示0000-00-00 – Jad

+0

對於我這個級別的人來說,Marc意味着這個':startdate'=> $ startdate。現在正在工作。 – Jad

相關問題