2011-04-13 102 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