Laravel strtotime не показывает точное время - PullRequest
0 голосов
/ 01 ноября 2019

У меня странная проблема с правильным форматированием времени. Я совсем не приближаюсь к значениям записей времени.

Я группирую время по категориям и месяцам и форматирую время, чтобы не было начальных нулей и секунд.

Некоторые примеры выходных данных: Если какие-либо из моих записей временидо 10:00:00 (так что двойные цифры для часов) отформатированное время будет 00: 00

например, 09:45:00 будет отформатировано до 00:00:00, тогда оно должно быть 9: 45 11:00:00 форматируется до 12:00:00 и т. Д., Я не уверен, что здесь происходит.

 public function show(User $user) 
    {
        $data = collect(array_fill(1, 12, []))
            ->replace(
                $user->times()
                    ->whereYear('start_day', 2019)
                    ->groupBy('category_id', \DB::raw('month(start_day)'))
                    ->select([
                        'category_id',
                        \DB::raw('month(start_day) as month'),
                        \DB::raw('sum(duration) as duration'),
                    ])
                    ->orderBy(\DB::raw('month(start_day)'))
                    ->get()
                    ->mapToGroups(function ($item) {
                        return [$item['month'] => [
                            $item['category_id'] => $this->formatDuration($item['duration'])
                        ]];
                    })
                    ->mapWithKeys(function ($item, $key) {
                        return [$key => $item->collapse()];
                    })
            )
            ->mapToGroups(function ($item, $key) {
                $month = \DateTime::createFromFormat('!m', $key)->format('M');
                return [$month => $item];
            });

        return view('report.show', compact('data'));
    }
private function formatDuration($duration)
{

    $duration = strtotime($duration);

    return date('g:i',$duration);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...