2017-12-02 337 views
1

我正在尋找一種方法,使哪個比較時間查詢,早晨 - 6至9日 - 9日至12日,晚上12 - 5Laravel查詢的時間範圍

現在,我使用在HTML

<select name="time" id="time"> 
      <option disabled value="">Choose A Time</option> 
      <option value="06:00 - 09:00">Morning - 06:00 - 09:00 </option> 
      <option value="10:00 - 13:00">Day - 10:00 - 13:00 </option> 
      <option value="14:00 - 18:00">Evening - 14:00 - 18:00</option> 
     </select> 

,我試圖查詢它像這樣的select選項,datetime我從數據庫中獲取它,它就像2017-12-13 06:15:00

$query->whereTime('datetime', '>=', $request->get('time').':00')      
    }); 

我沒有我dea如何比較一段時間,如比較06:00-09:0006:15

+0

什麼是'datetime'列的數據類型? –

+0

這是'datetime'數據類型 – Cowgirl

回答

1

您可以使用與上面相同的查詢來查找兩次之間的錶行。

$query->whereTime('timestamp', '>=', \Carbon\Carbon::parse('06:00')) 
    ->whereTime('timestamp', '<=', \Carbon\Carbon::parse('06:30')) 

不要串連日期字符串這樣,

$request->get('time').':00') 

這是不太合適的,你可能會失敗,這種方法。

+0

好吧,但我有一個像'06:00-09:00'我如何使用這個碳解析,一個是'06:00',一個用於'09:00' – Cowgirl

+0

$ morning_time_array =爆炸( ' - ', '06:00-09:00'); $ morning_time_array [0]將是'06:00' 也應該使用whereBetween,如: - > whereBetween( '時間',[06:00' ,'09:00' ]) - >獲得(); – Riccardo