У меня есть программа посещаемости, которая должна отображать среднее время в диапазоне дней в столбце created_at
. В настоящее время я сделал это следующим образом:
/**
* Show the average arrival time from user's attendance
* records between today and last month.
*
* @author Donny Pratama <donnypratama1024@gmail.com>
* @return \Illuminate\Http\Response
*/
public function showAverageAttendanceTime()
{
$today = Carbon::now();
$lastMonth = Carbon::now()->subDays(30);
$averageArrivalTime = auth()->user()->attendances()
->select('created_at')
->whereBetween('created_at', [$lastMonth, $today])
->avg('created_at');
return response()->json([
'success' => true,
'data' => [
'average_arrival_time' => Carbon::parse($averageArrivalTime)->toTimeString()
]
]);
}
Проблема в том, что в некоторых случаях Carbon не может проанализировать строку и выдает эту ошибку:
Исключение: DateTime :: __ construct (): Не удалось проанализировать строку времени (20200311271139.3796) в позиции 12 (3): неожиданный символ в файле / Users / stechoq / Документы / Программы / Laravel / prismahr-backend / vendor / nesbot / carbon / src / Carbon / Черты / Создатель. php на линии 81
Может ли кто-нибудь помочь мне?
РЕДАКТИРОВАТЬ
Я пытаюсь избежать используя необработанные SQL запросы, если это возможно.