Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 07.06.2016 16:07:30

Форматирование DateTime

В представлении через foreach вывожу DateTime  с БД. Но мне нужно выводить только часы и минуты. Не могу понять как и где это форматирование задать.
Контроллер:

$items = DB::table('schedule')
                        ->orderBy('dtime', 'asc')
                        ->get();

        return view('pages.schedule', ['items' => $items]);

Представление:

@foreach($items as $item)
    <div class="schedule-item">
        <div class="s-time">{{ $item->dtime }}</div>
    </div>
@endforeach

Я знаю, что можно задать желаемый формат следующим образом:

$time = new \DateTime($item->dtime);
$i = $time->format('H:i'));

Но не могу понять, как это реализовать по человечески.

Не в сети

#2 07.06.2016 16:22:58

Re: Форматирование DateTime

Я дурачёк. Сделал следующим образом:

@foreach($items as $item)
                <?php
                    $time = new DateTime($item->dtime);
                    $i = $time->format('H:i');
                ?>
                <div class="schedule-item">
                    <div class="s-time">{{ $i }}</div>
                </div>
@endforeach

Если это слишком тупо, то критика приветствуется.

Не в сети

#3 07.06.2016 16:36:04

Re: Форматирование DateTime

почитать про Carbon (в лару 5.2 вроде встроен уже, поправьте если не прав).
https://scotch.io/tutorials/easier-date … ith-carbon
Carbon собой экстендит DateTime
затем в шаблоне начни с {{Carbon::now()}}

Не в сети

#4 08.06.2016 11:18:18

Александр

Re: Форматирование DateTime

https://laravel.com/docs/5.2/eloquent-m … e-mutators

Нужно в модели добавить

protected $dates = ['dtime'];

после этого ты сможешь использовать Carbon метод $item->dtime->format('H:i')

Подвал раздела