当我运行这些代码时。我收到此错误:
致命错误:未捕获错误:在/Users/xxx/xxx/xxx/www/login/user/save.php:18中的bool上调用成员函数format():18堆栈跟踪:#0 {main}被抛出/Users/xxx/xxx/xxx/www/login/user/save.php,位于第18行。
format()
函数是否存在问题?
当我使用此功能时:
var_dump($tmp);
var_dump(DateTime::CreateFromFormat("m/d/Y", $_POST['start_date']));
var_dump(DateTime::getLastErrors("m/d/Y", $_POST['start_date']));
尝试获取错误消息,它显示:
bool(false)
bool(false)
array(4) {
["warning_count"]=> int(0)
["warnings"]=> array(0) { }
["error_count"]=> int(1)
["errors"]=> array(1) {
[0]=> string(12) "Data missing"
}
}
$_POST = array_map('stripslashes', $_POST);
$tmp = DateTime::CreateFromFormat("m/d/Y", $_POST['start_date']);
//var_dump....
$start_date = $tmp->format("Y-m-d");
$tmp = DateTime::CreateFromFormat("m/d/Y", $_POST['end_date']);
$end_date = $tmp->format("Y-m-d");
答案 0 :(得分:0)
确保以小写的“ c”开头功能正确的大小写。
$tmp = DateTime::createFromFormat("m/d/Y", $_POST['start_date']);
此方法在失败时返回DateTime对象或 false。
在您的情况下,$tmp
似乎是错误的(由于错误的函数调用?),并且您不能在布尔值上调用format(),错误消息是怎么说的。
所以在申请前先检查一下。
if($tmp) $start_date = $tmp->format("Y-m-d");
答案 1 :(得分:0)
由于数据丢失而出现致命错误,因此它返回bool(false)。如果我在首页表格中输入特定时间,然后首页将显示数据: object(DateTime)#7(3){[“ date”] =>字符串(26)“ 2019-09-30 15:09:14.000000” [“ timezone_type”] => int(3)[“ timezone”] = > string(3)“ UTC”}。并且它很好地插入数据库。感谢您的所有帮助和指导!