识别用户在php laravel 4.2中输入的字符串的日期格式


Identify date format of string entered by the user in php laravel 4.2

我有这个搜索功能,它获取用户输入并根据创建日期和上传日期对其进行排序。

到目前为止,我所做的是确定输入是否为M-y-d格式,但规格改变了,因此用户可以输入字符串。然后我应该检查它是否是一个有效的日期格式,然后获取它的日期格式,以便在我的排序中使用它。

我不知道该怎么做。什么好主意吗?

这是我当前的代码

if (DateTime::createFromFormat('M - d - Y', Input::get('searchb')) !== FALSE) 
        {
            // it's a date
            // dd('its a date');
            $sampledate = 'Carbon'Carbon::createFromFormat('M - d - Y', Input::get('searchb'))->format('Y-m-d');
            $srvc = $srvc->where('r.created_at' , 'LIKE' , '%'.$sampledate.'%');
            if($usrRole!='Admin' || $usrRole!='Analytics-Sups')
            {
                $temp = $temp->where('r.created_at' , 'LIKE' , '%'.$sampledate.'%');
            }
        }

您可以使用PHP的strtotime函数将任何类型的日期输入转换为所需的格式。

if (strtotime(Input::get('searchb')) !== false) {
    // Valid date
    $sampledate = date('M - d - y',strtotime(Input::get('searchb')));
    // Prepare DB search...
}