2017-04-12 106 views
0

存儲在數據庫中作爲DATE格式的麻煩轉換顯示日期回日期格式爲更新

2017-04-06 

能夠適當地轉換爲顯示如下,使得用戶可以改變它的值一個日期(如果必要的話):

$date_order = date("m/d/y", strtotime($data['date_order'])); 

這是正確顯示爲

04/06/17 

試圖轉換回ŧ ø日期格式(YMD),使用做一個更新到數據庫時執行以下操作:

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

不幸的是,將其轉換爲以下值:

1970-01-01 

錯誤日誌=「A非良好地形成數字值遭遇」。

+0

@Fred - 對於'快樂路徑測試'我沒有改變數值,只是試圖將日期格式轉換回來。 – Bricked

回答

1

您需要將字符串轉換爲時間戳,使用strtotime()函數。

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

Alex Howansky提供更加防彈的解決方案,所以你可以使用它。

$date_ship = DateTime::createFromFormat('m/d/y', $_POST['date_ship'])->format('Y-m-d'); 
+0

優秀。這工作。 – Bricked

1

當你有像「04/06/17」這樣的字符串時,沒有確定的方法來判斷04是日還是月。您可以使用​​方法明確指定您想要的內容。

$date = DateTime::createFromFormat('m/d/y', '04/06/17'); 
echo $date->format('Y-m-d');