雄辩的排序依据日期时间属性格式

时间:2019-01-31 14:41:43

标签: sql database laravel eloquent

我有一个包含datatime格式属性的模型,我想按此属性对集合进行排序,但我不想考虑小时和分钟,而只考虑日期,因为我想获得第二个按距离过滤。我处于无法更改迁移状态的情况,因为正在处理大量事件(+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 :(得分:0)

您可以将其解析为Carbon实例,并仅按日期对其进行排序。

$result = $result->sortBy(function ($item) {
    return [Carbon\Carbon::parse($item['date_end'])->toDateString(), $item['distance_km']];
});