可能重复:
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");