Laravel 两个时间戳之间不起作用

问题描述 投票:0回答:1

我试图从 session_start 列的数据库中获取 $booking_start_formatted 和 $booking_end 之间的数据,但它仅选择 $booking_start_formatted 以下的数据

public function store(Request $request, Utils $utils)
{
    $request->validate([
        "user_id" => "required|int",
        "booking_start" => "required",
    ]);

    try {
        $booking_start = Carbon::parse($request->get("booking_start"));
        $booking_start_formatted =  $booking_start->format("Y-m-d H:i:s");
        $booking_end =  $booking_start->addMinute(45)->format("Y-m-d H:i:s");

        $booking = Bookings::query()->whereBetween("session_start", [$booking_start_formatted, $booking_end])->get();
        return $utils->message("error",$booking , 400);
        
           
    }catch (\Throwable $e) {
        // Do something with your exception
        return $utils->message("error", $e->getMessage() , 400);
    }
}

我的时间戳格式是 2024-03-31 06:35:13

laravel timestamp php-carbon
1个回答
0
投票

您需要克隆

Carbon
对象或更改为不可变对象。 Carbon 默认是一个可变对象。

使用

copy
方法

$booking_end =  $booking_start->copy()->addMinute(45)->format("Y-m-d H:i:s");

看看这个 Stack Overflow 帖子,同样的问题 https://stackoverflow.com/a/49905830/11836673

© www.soinside.com 2019 - 2024. All rights reserved.