首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL数据库和导入日期问题

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

Stack Overflow用户
提问于 2018-01-03 01:06:46
回答 2查看 57关注 0票数 1

好了,在我的mysql数据库中,我使用了一个日期字段。使用PHP时,我会检查用户是否为18岁。然后,我尝试将所有表单信息输入到我的MySQL数据库中以创建用户。我一直看到一个空白屏幕(除了我的导航栏和页脚),用户没有被保存到数据库中,错误日志显示这个错误: PHP可恢复的致命错误: DateTime类的对象无法在...中转换为字符串。

代码语言:javascript
复制
$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应该是一样的。如何将其更改为字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-03 01:09:53

您返回的是DateTime对象,因为format函数返回一个字符串,所以它不会更改对象。尝试返回format函数的结果,即formatted string

代码语言:javascript
复制
return $dateObj->format('Y-m-d');
票数 4
EN

Stack Overflow用户

发布于 2018-01-03 01:17:17

代码语言:javascript
复制
$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中的某个地方触发的,您可以在其中尝试将结果转换为字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48065032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档