DateTime对象错误:调用布尔
问题描述:
Fatal error: Uncaught Error: Call to a member function format() on boolean in /homepages/21/*****/*****/******/card/upload.php:29 Stack trace: #0 {main} thrown in /homepages/21/******/*****/*****/card/upload.php on line 29DateTime对象错误:调用布尔
$newarray['date'] = DateTime::createFromFormat("j M Y", $arry[0])->format("Y-m-d");
怎样才能解决这个问题的一个成员函数的格式()?
答
很明显,您通过$arry[0]
传递了无效的日期表达式。
这里是一个demo:
// it works when $arry[0] is valid
$arry=['28 Jan 2017'];
$newarray['date'] = DateTime::createFromFormat("j M Y", $arry[0])->format("Y-m-d");
echo $newarray['date'];
echo "\n\n";
// it doesn't otherwise
$arry=['28 Mon 2017']; // or an empty string, etc.
$newarray['date'] = DateTime::createFromFormat("j M Y", $arry[0])->format("Y-m-d");
echo $newarray['date'];
输出:
2017-01-28
<br />
<b>Fatal error</b>: Uncaught Error: Call to a member function format() on boolean in [...][...]:16
Stack trace:
#0 {main}
thrown in <b>[...][...]</b> on line <b>16</b><br />
还有什么在'$ ARRY [0]'? –
'DateTime :: createFromFormat'返回一个新的DateTime实例或失败时返回FALSE。如果失败false是一个布尔值,那么就是错误。 – nerdlyist
也格式应该有破折号''j-M-Y'' – nerdlyist