Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

tisuchi's avatar

Fetch data based on date and time

Hello

I wanna display date from my database based on date and time. For example-

Today

  • event 1
  • event 2

Yesterday

  • event 3
  • event 4

Day before yesterday

  • event 5
  • event 6

and so on... More clear example is in following link http://demo.interface.club/limitless/layout_4/LTR/default/task_manager_list.html

Any idea how to do so?

0 likes
3 replies
veve286's avatar

Event::groupBy(DB::raw("DAY($current_date)") )->get();

bobbybouwmann's avatar

You need to do something like this

// Controller

public function index()
{
    // Get all events and order them by date.
    $events = Event::orderBy('date', 'desc')->get();
    
    return view('some.view', compact('event'));
}

And then in your view you need to do some kind of check for each day

<?php
$startDate = $events->first()->date;
$endDate = $events->last()->date;
$date = $startDate;
?>

@while($date->gte($endDate))

    <?php $collection = $events->filter(function ($event) use ($date) {
        return $event->date->format('d-m-Y') == $date->format('d-m-Y');
    }); ?>

    <h1>{{ $date->format('Y-m-d') }}</h1>

    @foreach ($collection as $event) 

        <p>{{ $event->title }}</p>

    @endforeach

    <?php $date->subDay(); ?>

@endwhile

Please or to participate in this conversation.