2017-12-02 338 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