Laravel 查询某个时间范围

Cow*_*irl 5 php mysql sql laravel

我正在寻找一种方法来进行查询,比较时间,早上 - 6 点到 9 点,白天 - 9 点到 12 点,晚上 12 - 5 点

现在,我正在使用selecthtml 中的一个选项

<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>
Run Code Online (Sandbox Code Playgroud)

我试图像这样查询它,datetime我从数据库中获取它,就像2017-12-13 06:15:00

    $query->whereTime('datetime', '>=', $request->get('time').':00')                    
    });
Run Code Online (Sandbox Code Playgroud)

我不知道如何比较一段时间,比如06:00-09:0006:15

San*_*eep 13

您可以使用与上面相同的查询来查找两个时间之间的表行。

$query->whereTime('timestamp', '>=', \Carbon\Carbon::parse('06:00'))
     ->whereTime('timestamp', '<=', \Carbon\Carbon::parse('06:30'))
Run Code Online (Sandbox Code Playgroud)

不要像这样连接日期字符串,

$request->get('time').':00')  
Run Code Online (Sandbox Code Playgroud)

这不太合适,这种方法可能会失败。