通过日期 url Laravel

Pass date in url in Laravel

我有这个Link在我看来

 <a href="{{route('detail', ['id'=>$row->id, 'date'=>Carbon\Carbon::now()->format('m-d-Y') ])}}">
 Link
 </a>

当我点击这个 link 这个 url 被调用

detail?id=2&date=03-22-2022

出现此错误:

Could not parse '03-22-2022': DateTime::__construct(): Failed to parse time string (03-22-2022) at position 0 (0): Unexpected character

但是如果我的url是

detail?id=1&date=03%2F22%2F2022

那么它正在工作 我如何 url在 laravel

中编码

Controller:

public function Detail(Request $request)
    {
         
        $start_date=date('Y-m-d H:i:s', strtotime($request->date));
    }

谢谢

您可以使用urlencode函数。

   <a href="{{route('detail', ['id' => $row->id, 'date' => urlencode(Carbon\Carbon::now()->format('m-d-Y')) ])}}">
     Link
   </a>

您可以传递时间戳。

<a href="{{route('detail', ['id'=>$row->id, 'date'=> \Carbon\Carbon::now()->timestamp ])}}">
    Link
</a>

控制器

public function Detail(Request $request)
{
    $start_date=date('Y-m-d H:i:s', \Carbon\Carbon::now()->timestamp);
}

在控制器方法中使用 Carbon::createFromFormat 并像下面那样导入碳

use Carbon\Carbon;

然后在方法

public function Detail(Request $request)
{
         
       $startDate=Carbon::createFromFormat('m-d-Y',$request->date);

       dd($startDate->toDateTimeString());
}