Php 进行laravel查询以搜索两次之间的数据
查询有两种情况Php 进行laravel查询以搜索两次之间的数据,php,laravel,Php,Laravel,查询有两种情况 同一天两次 第二天第二次 我现在使用php检查以下代码,但如何在Laravel查询中执行?这是处理这个案子的更好办法吗 if($period->order\u start>$period->order\u end){ 如果($period->order_start>=$current&&&$period->order_end order_start>=$current | | period->order_end now()和order_endnow()或order_endwhe
if($period->order\u start>$period->order\u end){
如果($period->order_start>=$current&&&$period->order_end order_start>=$current | | period->order_end now()和order_endnow()或order_end
如果可能,将“订单开始”和“订单结束”转换为数据库中的日期时间,以便您可以轻松比较这两种情况下的时间。如果订单开始和订单结束在同一时间,可以防止出现错误
否则你可以查一查
if(订单时间<订单结束)
{
这是当前日期;
}否则
{
这是另一个日期;
}
假设您的型号名称为FoodType,并且您只想根据当前日期时间检查您的FoodType是否为午餐或晚餐,然后您可以按如下方式进行检查
$currentdatetime = date('Y-m-d h:i:s');
$foodtype = FoodType::whereRaw('? between order_start and order_end', $currentdatetime)
->first();
希望这对你有帮助。试试这个
$currentTime = \Carbon\Carbon::parse($timeNow);
$query->where(function ($query) use ($currentTime) {
$query->where('order_start', '>', $currentTime)
->where('order_end', '<=', $currentTime);
})->orWhere(function ($query) use ($currentTime) {
$query->where('order_start', '>', $currentTime)
->orWhere('order_end', '<=', $currentTime)
});
$currentTime=\Carbon\Carbon::parse($timeNow);
$query->where(函数($query)use($currentTime){
$query->where('order_start','>',$currentTime)
->其中('order_end',''$currentTime)
->或者where('order_end'),“您的数据库中没有识别第二天订单的东西,请在系统中添加订单日期,以便您可以轻松识别第二天的订单。请放入表结构..因为您有订单id或订单日期来识别日订单使用whereTime
如下:Model::whereTime(order_-start,>=,now())->何时('order_-end',@AnkurTiwari如果order_-start
order_-end
,则表示order_-end
在第二天。我可以这样做吗?@Ivan谢谢。但此查询仅在同一天可用。是否有任何解决方案可以检查order_-start>order_-end
(第二天)的时间谢谢。但是第二种情况是,如果订单结束
,我如何向查询中添加条件?