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

识别用户在php laravel 4.2中输入的字符串的日期格式,php,laravel,date,datetime,laravel-4,Php,Laravel,Date,Datetime,Laravel 4,我有这个搜索功能,可以获取用户输入,并根据创建日期和上载日期对其进行排序 到目前为止,我所做的是确定输入是否为M-y-d格式,但规格已更改,因此用户可以输入字符串。然后我应该检查它是否是有效的日期格式,然后获取它的日期格式以在我的排序中使用它 我不知道该怎么做。有什么想法吗 这是我目前的代码 if (DateTime::createFromFormat('M - d - Y', Input::get('searchb')) !== FALSE) { //

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

到目前为止,我所做的是确定输入是否为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 strotime函数将任何类型的日期输入转换为所需的格式

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

    // Prepare DB search...
}

哇,这是一个很长的句子。与其传递字符串,不如使用特定格式的datepicker传递日期,它可以解决您的问题,这样您就不需要在控制器中比较日期了。