Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 进行laravel查询以搜索两次之间的数据_Php_Laravel - Fatal编程技术网

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

查询有两种情况

  • 同一天两次
  • 第二天第二次
  • 我现在使用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_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
    (第二天)的时间谢谢。但是第二种情况是,如果
    订单结束
    ,我如何向查询中添加条件?