Eloquent sortBy формат даты и времени атрибута - PullRequest
0 голосов
/ 31 января 2019

У меня есть модель, которая содержит атрибут в формате времени данных, и я хочу отсортировать свою коллекцию по этому атрибуту, но я не хочу принимать во внимание часы и минуты, только дату, потому что я хочу получить секундуфильтр по расстоянию.Я нахожусь в ситуации, когда я не могу изменить свои миграции, потому что имею дело с огромным количеством событий (+20.000).Я был бы признателен за любую помощь, ребята, спасибо.

Это пример объяснения того, с чем я имею дело.

Вот где я работаю с фильтром по date_end и расстоянию:

elseif($data['date'] == true ) {
            $result = $result->sortBy(function($item) {
            return [$item['date_end'], $item['distance_km']];
            });

Это фактические результаты:

date_end                     distance
                        |
12/12/2018 15:30        | 107 km
12/12/1018 17:00        | 105 km
01/01/2019 11:45        | 125 km
01/01/2019 12:30        | 120 km

И это то, что я ожидаю:

date_end                     distance
                          |
12/12/2018 (17:00)        | 105 km
12/12/1018 (15:30)        | 107 km
01/01/2019 (12:30)        | 120 km
01/01/2019 (11:45)        | 125 km 

1 Ответ

0 голосов
/ 31 января 2019

Вы можете проанализировать его как экземпляр Carbon и отсортировать только по дате.

$result = $result->sortBy(function ($item) {
    return [Carbon\Carbon::parse($item['date_end'])->toDateString(), $item['distance_km']];
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...