在Laravel按日期分组

时间:2014-11-19 20:35:22

标签: laravel laravel-4

我正在尝试按日期对结果进行分组。我的日期字段是mySQL时间戳,我使用的是Laravel 4.1。出于这个目的,我使用了一个名为'start_time'的字段,并且需要它按字面按字段分组,而忽略实际时间。

有人能指出我正确的方向吗?我不熟悉在这个框架中使用这样的日期。

$agenda = Agenda::where('active', '=', 'Y');
$agenda->with('user');
$agenda->with('room');
$agenda->groupBy(DB::raw('DATE_FORMAT(start_time, "%d/%m/%Y")'));
$agenda->orderBy('start_time', 'asc');
$agenda->distinct();
$agenda->get();

return View::make('agenda')->with('agendas', $agenda);

@foreach($agendas as $agenda)
  {{ date("d M Y",strtotime($agenda->start_time)) }}
@endforeach

2 个答案:

答案 0 :(得分:0)

这可能是一种非常基本的方法,但这就是我经常这样做的方式:

<?php $currentDate = null ?>
@foreach($agendas as $agenda)
    <?php $date = date("d M Y",strtotime($agenda->start_time)); ?>
    @if($currentDate != $date)
        <?php $currentDate = $date; ?>
        <h3>{{ $date }}</h3>
    @endif

    {{-- do the stuff --}}
@endforeach

在视图中不要像这样进行日期格式化会很好(并且最好/更好的练习)。但是你明白了。

答案 1 :(得分:0)

也许您会拆分成更多的foreach循环(?)。 首先,我们将查询以获取具有唯一,顺序,等式的start_time的所有... 然后,推动一个foreach循环以获取属于每个start_time元素的数据。 希望这会有用。