A date range trait with local scope methods for Laravel Eloquent models
Install via composer
composer require hedii/laravel-date-range
Simply tell your eloquent model that it has to use the DateRange trait:
<?php
namespace App;
use Hedii\LaravelDateRange\DateRange;
class MyModel extends Model
{
use DateRange;
/* ... */
}
By default $fieldName is set to "created_at".
Method name | Parameters | Description |
---|---|---|
currentMinute |
(string) $fieldName | Scope a query to only include the current minute entries |
lastMinute |
(string) $fieldName | Scope a query to only include the last minute entries |
currentHour |
(string) $fieldName | Scope a query to only include the current hour entries |
lastHour |
(string) $fieldName | Scope a query to only include the last hour entries |
currentDay |
(string) $fieldName | Scope a query to only include the current day entries |
lastDay |
(string) $fieldName | Scope a query to only include the last day entries |
currentWeek |
(string) $fieldName | Scope a query to only include the current week entries |
lastWeek |
(string) $fieldName | Scope a query to only include the last week entries |
currentMonth |
(string) $fieldName | Scope a query to only include the current month entries |
lastMonth |
(string) $fieldName | Scope a query to only include the last month entries |
currentYear |
(string) $fieldName | Scope a query to only include the current year entries |
lastYear |
(string) $fieldName | Scope a query to only include the last year entries |
lastSeconds |
(int) $countSeconds, (string) $fieldName | Scope a query to only include the last x seconds entries |
lastMinutes |
(int) $countMinutes, (string) $fieldName | Scope a query to only include the last x minutes entries |
lastHours |
(int) $countHours, (string) $fieldName | Scope a query to only include the last x hours entries |
lastDays |
(int) $countDays, (string) $fieldName | Scope a query to only include the last x days entries |
lastWeeks |
(int) $countWeeks, (string) $fieldName | Scope a query to only include the last x weeks entries |
lastMonths |
(int) $countMonths, (string) $fieldName | Scope a query to only include the last x months entries |
lastYears |
(int) $countYears, (string) $fieldName | Scope a query to only include the last x years entries |
$currentDayEntries = MyModel::currentDay()->get();
$lastYearEntries = MyModel::lastYear()->get();
$entriesFromTheLastTenDays = MyModel::lastDays(10)->get();
composer test
hedii/laravel-date-range is released under the MIT Licence. See the bundled LICENSE file for details.