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