好了,在我的mysql数据库中,我使用了一个日期字段。使用PHP时,我会检查用户是否为18岁。然后,我尝试将所有表单信息输入到我的MySQL数据库中以创建用户。我一直看到一个空白屏幕(除了我的导航栏和页脚),用户没有被保存到数据库中,错误日志显示这个错误: PHP可恢复的致命错误: DateTime类的对象无法在...中转换为字符串。
$age = checkAge($_POST["birthday"]);
if($age != false)
{
$ageSuc = "All Good!";
}
else ....
function checkAge ($data)
{
$dateObj = new DateTime($data);
$ageLimit = new DateTime('-18 years');
if ($dateObj > $ageLimit)
{
return false;
}
else
{
$dateObj->format('Y-m-d');
return $dateObj;
}
}所以问题是,在MySQL接受它之前,我需要将dateTime对象转换成字符串吗?字段被设置为保存‘date’,所以我认为date obj应该是一样的。如何将其更改为字符串。
发布于 2018-01-03 01:09:53
您返回的是DateTime对象,因为format函数返回一个字符串,所以它不会更改对象。尝试返回format函数的结果,即formatted string。
return $dateObj->format('Y-m-d');发布于 2018-01-03 01:17:17
$age = checkAge($_POST["birthday"]);
if($age != false)
{
$ageSuc = "All Good!";
}
else ....
function checkAge ($data)
{
$dateObj = new DateTime($data);
$ageLimit = new DateTime('-18 years');
if ($dateObj > $ageLimit)
{
return false;
}
else
{
return $dateObj->format('Y-m-d');
}
}如果需要字符串结果,则必须返回format()结果,而不是对象本身。
但是您指定的错误并不是在这段代码中直接触发的,而是在else中的某个地方触发的,您可以在其中尝试将结果转换为字符串。
https://stackoverflow.com/questions/48065032
复制相似问题