我正在做一个日期搜索过滤器,我的日期显示为“jnY G:i (26.6.2012 15:22)”。用户可以输入整个日期或部分日期:“26.6”、“6.2012”、“6”、“15:22”都是有效输入。因为我需要在数据库中检查这个日期,所以需要将格式更改为数据库的格式。为此,我使用:
$datum = '25.6.2012';
$date = DateTime::createFromFormat('j.n.Y',$datum);
echo $date->format('Y-m-d H:i');
如果 $datum 的格式不是 jnY,我会收到错误消息(如果我只输入 jn 或上述字符串部分之一,我会收到错误消息)。
还有一个问题是,对于输入的字符串'jnY',我得到了正确的日期输出,它也将当前时间添加到日期字符串中(它不在初始日期字符串中)。示例:我输入“22.6.2012”,然后得到输出“2012-06-22 15:33”。
这两个问题可以用现有的 php 函数解决还是我应该自己解决?
帮助将不胜感激。