[code-snippet] Create a date interval filter helper in PHP / Laravel

I was looking into date filters for a project I am working on and I thought I would share the filter helper class I am now using, it may be of some use to someone out there:

// The date helper
class DateFilter
{
public function __construct(
public readonly Carbon $start,
public readonly Carbon $end
) {}
public static function today(): self
{
return new self(
start: now()->startOfDay(),
end: now(),
);
}
public static function thisWeek(): self
{
return new self(
start: now()->startOfWeek(),
end: now(),
);
}
}
// And we can use it like this - or of course however fits your code
public function getNewUsers(): NewUsersCount
{
return new NewUsersCount(
today: User::whereCreatedBetween(DateFilter::today())->count(),
thisWeek: User::whereCreatedBetween(DateFilter::thisWeek())->count(),
);
}

First seen at: https://x.com/mmartin_joo/status/1671518854101475330