Php MySQL数据库和导入日期问题
好的,在我的mysql数据库中,我使用了一个日期字段。我使用PHP检查用户是否为18岁。然后我尝试将所有表单信息输入我的MySQL数据库,以创建一个用户。除了导航栏和页脚外,我一直看到一个空白屏幕。用户未保存到数据库中,错误日志显示此错误:PHP可恢复致命错误:DateTime类的对象无法转换为字符串Php MySQL数据库和导入日期问题,php,mysql,datetime,Php,Mysql,Datetime,好的,在我的mysql数据库中,我使用了一个日期字段。我使用PHP检查用户是否为18岁。然后我尝试将所有表单信息输入我的MySQL数据库,以创建一个用户。除了导航栏和页脚外,我一直看到一个空白屏幕。用户未保存到数据库中,错误日志显示此错误:PHP可恢复致命错误:DateTime类的对象无法转换为字符串 $age = checkAge($_POST["birthday"]); if($age != false) { $ageSuc = "All Good!"; } else .... f
$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对象之前,我是否需要将其转换为字符串?该字段设置为保存“dates”,所以我认为date obj应该是相同的东西?如何将其更改为字符串 您正在返回DateTime对象,因为format函数返回字符串,所以它不会更改对象。尝试返回format函数的结果,该函数是
您正在返回DateTime对象,因为format函数返回字符串,所以它不会更改对象。尝试返回format函数的结果,该函数是 如果需要字符串结果,则必须返回格式结果,而不是对象本身 但是,您指定的错误不是在这段代码中直接触发的,而是在其他代码中的某个地方触发的,在那里您尝试将结果转换为字符串 如果需要字符串结果,则必须返回格式结果,而不是对象本身
但是您指定的错误不会直接在这段代码中触发,而是在另一段代码中的某个地方触发,您尝试将结果转换为字符串。这不会仍然将其作为obj返回吗?或者将其转换为字符串?对我来说,它看起来就像我做的一样,只是你用了一行…@user3448741,它将以该格式返回字符串日期,我将试一试@用户3448741好的很好,很高兴为您提供帮助。您不仍然将其作为obj返回吗?或者将其转换为字符串?对我来说,它看起来就像我做的一样,只是你用了一行…@user3448741,它将以该格式返回字符串日期,我将试一试@user3448741好的,很高兴能在回复这个问题时稍微晚一点提供帮助,但如果有人遇到这个问题,这里是我对您答案的反馈。。。我发现了你的权利,我说我必须返回格式结果,但是错误是该代码段的结果,因为我返回的是对象本身,而不是格式的字符串结果。回答这个问题有点晚,但如果有人遇到这个问题,这里是我对你答案的反馈。。。我发现了你的权利,我说我必须返回格式化结果,但是错误是该代码段的结果,因为我返回的是对象本身,而不是格式化的字符串结果。
return $dateObj->format('Y-m-d');
$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');
}
}