确定\ DateTime已在构造函数中推断出一天

时间:2017-02-22 19:31:26

标签: php datetime

我正在尝试让用户输入接受限制搜索的日期。我使用以下内容:

try {
    $begin = new \DateTime($range['begin']);
} catch (\Exception $e) {
    $begin = null;
}

如果日期未能构建,则不会修改查询(未显示)。

有时用户只输入一个月,然后很明显用户想要在该月的第一天和最后一天之间进行搜索,我可能会以不同的方式修改查询。

不幸的是,php推断,没有其他规范,用户意味着本月的第一天。有没有办法确定这是否已经发生?提出这个问题的另一种方法是,如何确定用户在没有一天的情况下提供了有效月份,并将该日期与利用DateTime自动解释的无数格式的月份第一天进行区分?

我的第一次使用了date_parse,但也推断了日期。

1 个答案:

答案 0 :(得分:-1)

最好总是知道输入值的格式,这样就可以简单地转换为datetime对象,例如:

$inputFieldValue = '22/02/2017';
$date = \DateTime::createFromFormat('d/m/Y', $inputFieldValue);
if ($date instanceof \DateTime) {
    echo 'input is valid date, do what you need';
} else {
    echo 'input is not valid date';
}

更多文档http://php.net/manual/en/datetime.createfromformat.php