Php MySQL数据库和导入日期问题

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

好的,在我的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对象之前,我是否需要将其转换为字符串?该字段设置为保存“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');
            }
      }