PHP: DateTime::__construct() 错误

标签 php

我不断收到以下错误:

DateTime::__construct(): Failed to parse time string (46-61-9481) at position 0 (4): Unexpected character

与 API 中的这段脚本相关

 $dob = new DateTime(str_replace('/','-',Input::post('date_of_birth')));
  $customer->date_of_birth = $dob->getTimestamp();

我对代码的了解非常有限,但是,我想知道是否有人愿意让我知道要更改哪些内容以避免这些错误。

最佳答案

这里的问题是 DateTime() 的使用。 PHP DateTime() 需要一个有效的日期,否则将引发异常。如果您仍然想接受无效的日期输入,最好将其放入 try catch block 中。如果日期是有效的,它将正常工作,否则它将被捕获。在 catch block 中,您可以设置默认日期(例如 00/00/0000)并保存到数据库。

try {
    $date = new DateTime('01-01-2016');
    $date = $date->format('m/d/Y');
} catch (\Exception $e) {
    $date = '00/00/0000';
}

echo $date;

关于PHP: DateTime::__construct() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35958559/

相关文章:

javascript - Ajax 到 php 并存储在数据库中

javascript - 通过 Ajax 提交输入值时的 PHP 未定义索引

javascript - 获取位置A的位置并计算其到位置B的距离

javascript - 使用Ajax从javascript发送数组到php,不使用表单

php 替换 ascii 代码

PHP:使用正则表达式从字符串中删除多余的空格

php - .htaccess 文件中的 .htpasswd 路径

php - Google Drive PHP API 客户端 : Creating a folder in a shared drive

php - 仅从几个 Mysql 字段创建一个 json 数组,同时输出其他字段

php - 将 Mysql 附近查询转换为 Laravel API 查询