首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateTime::__construct()错误

DateTime::__construct()错误
EN

Stack Overflow用户
提问于 2016-03-12 14:00:53
回答 2查看 2.7K关注 0票数 2

我一直收到以下错误:

DateTime::__construct():未能解析位于0(4)位置的时间字符串(46-61-9481):意外字符

,它与API中的这段脚本有关。

代码语言:javascript
复制
 $dob = new DateTime(str_replace('/','-',Input::post('date_of_birth')));
  $customer->date_of_birth = $dob->getTimestamp();

当涉及到代码时,我的知识非常有限,但是,我想知道是否有人会让我知道应该修改什么来避免这些错误。

EN

回答 2

Stack Overflow用户

发布于 2016-03-12 18:48:47

这里的问题是DateTime()的使用。PHP DateTime()需要一个有效的日期,否则它会抛出异常。如果您仍然希望接受无效的日期输入,最好将其放入try catch块中。如果日期是有效的,它将工作良好,否则它将来捕获块。在catch块中,可以设置默认日期(如00/00/0000 )并保存到DB。

代码语言:javascript
复制
try {
    $date = new DateTime('01-01-2016');
    $date = $date->format('m/d/Y');
} catch (\Exception $e) {
    $date = '00/00/0000';
}

echo $date;
票数 3
EN

Stack Overflow用户

发布于 2016-03-12 14:03:47

46不是一个有效的月份,也不是一个有效的月份。有效的月份或月中的一天从不以4开头。

日期46-61-9481无效,因此出现错误。

解决方案是在将validate the input date传递给DateTime构造函数之前对它进行处理。

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

https://stackoverflow.com/questions/35958559

复制
相关文章

相似问题

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