2016-09-07 56 views
0

我有這種搜索功能,可以根據創建日期和日期上傳得到用戶輸入並對其進行排序。確定用戶在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.'%'); 
      } 
     } 
+0

哇,這是一個長句。 – PawelMysior

+0

而不是傳遞字符串爲什麼不通過日期通過使用特定格式的日期選擇器,它將解決您的問題,使您不需要在控制器中比較日期。 – Nil

回答

-1

你可以使用PHP的strtotime功能,任何一種方式的輸入轉換成所需要的格式。

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

    // Prepare DB search... 
}