2011-04-13 134 views
0

你好每一個我有一個MySQL DBMS的問題我從來沒有在這種格式的日期存儲yyyy-mm-dd我總是有這種格式dd-mm-yyyy我用這種方法來改變日期格式,同時插入數據但它不起作用mysql中的日期格式?

function dateConvert($dateInser) { 
$dateTime = new DateTime($dateInser); 
$dateFormate=date_format ($dateTime, 'Y-m-d'); 
    return $dateFormate; 
} 

有沒有解決方案?

+0

在數據庫的日期時間的格式將永遠同並不會改變。 – 2011-04-13 10:21:30

+0

是的先生,但用戶輸入應該是這樣的dd-mm-yyyy,我必須將它轉換爲yyyy-mm-dd,因爲mysql你有什麼建議? – Houssam 2011-04-13 10:23:59

+0

這個功能完美的工作 – Emmerman 2011-04-13 10:24:24

回答

3

DateTime的構造函數也期望特定的格式,我懷疑dd-mm-yyyy是其中之一。首先分析您的DD-MM-YYYY日期將其改造成一個DateTime對象,然後使用YYYY-MM-DD格式來格式化DateTime對象:

$dateTime = date_create_from_format('d-m-Y', $dateInser); 
$dateFormate = date_format($dateTime, 'Y-m-d'); 
+0

它不工作!警告:date_format()期望參數1爲DateTime,布爾值在.. – Houssam 2011-04-13 10:38:00

+0

這可能意味着從date_create_from_format調用返回FALSE,這意味着$ dateInser不包含有效的'd-m-Y'日期。 – 2011-04-13 10:48:14

+0

它解決了我使用這個mysql函數STR_TO_DATE('$ dateInser','%m-%d-%Y') – Houssam 2011-04-13 11:08:17