如何在使用carbon传递给视图之前更改日期格式

时间:2018-03-27 06:17:31

标签: php laravel date php-carbon

public function graphheheByDate(Request $request, $companyID)
{
  $companyID = $this->decode($companyID);

  $matchs = DiraChatLog::whereBetween('date_access', [$request->from, $request->to])->orderBy('date_access', 'asc')->get();
  foreach ($matchs as $key => $match) {
    $time = strtotime($match->date_access); 
    $newformat = date('Y-m-d',$time);
    $a[$newformat] = $this->testing($newformat,$match);
  }

  dd($a);

  $user = array_values($a);
  $dates = array_keys($a);
  // dd($user, $dates);

  $from = $request->from;
  $to = $request->to;
  // dd($from, $to);

  $companyID = $this->encodeID($companyID);

  return view('AltHr.Chatbot.graphhehe', compact('companyID','from','to', 'dates'))->with('user',json_encode($user,JSON_NUMERIC_CHECK))->with('dates',json_encode($dates,JSON_NUMERIC_CHECK));     
}


private function testing($date,$match)
{
  $a = Carbon::parse($date)->addDay()->toDateTimeString();
  // dd($a,$date);

  $noOfUsers = DiraChatLog::whereBetween('date_access', [$date,$a])->get();
  // dd($noOfUsers);

  return $noOfUsers->groupBy('user_id')->count();
}

我已经完成了这个功能,它将返回一个像date => value这样的数组,所以在这个函数。它将数据库中的日期作为Y-M-D返回,因此它也会返回到视图。但是如何在控制器或视图中将日期格式更改为D-M-Y

3 个答案:

答案 0 :(得分:1)

我喜欢使用PHP DateTime类转换日期格式。这是一个例子:

$oFrom = DateTime::createFromFormat('Y-m-d', $from);
$oTo = DateTime::createFromFormat('Y-m-d', $to);

// Change the format
$from = $oFrom->format('d/m/Y');
$to = $oTo->format('d/m/y');

答案 1 :(得分:0)

你应该尝试以下解决方案

Carbon::parse($date)->addDay()->format('d-m-Y');

答案 2 :(得分:0)

最佳做法是制作一个辅助函数(可以从任何视图访问),如下所示。

function convertDate($date) {
    return date('d-m-y', startotime($date));
}

并使用内部视图{{convertDate($ date)}}

或者您也可以在控制器中编写此代码。

 $from = date('d-m-y', strtotime($request->from));