可能重複:
strtotime failing on mm-dd-yyyy hh:mmPHP的DateTime不允許日期格式
我有像未來的日期如下圖所示,但日期時間函數不會允許它:
$start = new DateTime('13/10/2012');
echo $start->format("Y-m-d");
它允許所有其他方法,即使使用'10/13/2012',但我不能改變它,因爲這是我' m收到日期。
任何想法?
感謝
可能重複:
strtotime failing on mm-dd-yyyy hh:mmPHP的DateTime不允許日期格式
我有像未來的日期如下圖所示,但日期時間函數不會允許它:
$start = new DateTime('13/10/2012');
echo $start->format("Y-m-d");
它允許所有其他方法,即使使用'10/13/2012',但我不能改變它,因爲這是我' m收到日期。
任何想法?
感謝
createFromFormat你嘗試,createFromFormat()?
$start = DateTime::createFromFormat('d/m/Y', '13/10/2012');
試日期時間::像
$start = DateTime::createFromFormat('d/m/Y', '13/10/2012');
根據該文件,它僅接受以特定格式的日期,其中之一是「美國的月,日,年」,如果你提供13月份這顯然會失敗。
我總是儘量避免使用模糊格式的日期。在代碼中大多使用「2012-10-13」,而「2012年10月13日」使用面向用戶的日期。兩者都可以通過任何我有過經驗的日期格式化API可靠地解析。
但是當被迫使用模糊格式工作時,我手動解析它,而不是依賴於PHP的內置API,因爲我完全理解它將做什麼。例如:
list($day, $month, $year) = preg_split('/[^0-9]+/', '13/10/2012');
$start = new DateTime("$year-$month-$day");