我正在尝试让用户输入接受限制搜索的日期。我使用以下内容:
try {
$begin = new \DateTime($range['begin']);
} catch (\Exception $e) {
$begin = null;
}
如果日期未能构建,则不会修改查询(未显示)。
有时用户只输入一个月,然后很明显用户想要在该月的第一天和最后一天之间进行搜索,我可能会以不同的方式修改查询。
不幸的是,php推断,没有其他规范,用户意味着本月的第一天。有没有办法确定这是否已经发生?提出这个问题的另一种方法是,如何确定用户在没有一天的情况下提供了有效月份,并将该日期与利用DateTime自动解释的无数格式的月份第一天进行区分?
我的第一次使用了date_parse,但也推断了日期。
答案 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';
}