Documentation Index
Fetch the complete documentation index at: https://mintlify.com/livewire/flux/llms.txt
Use this file to discover all available pages before exploring further.
The DateRange class provides convenient static methods for creating common date ranges. It extends Carbon’s CarbonPeriod class and includes preset functionality.
Overview
use Flux\DateRange;
// Create preset date ranges
$today = DateRange::today();
$lastWeek = DateRange::lastWeek();
$last30Days = DateRange::last30Days();
// Access start and end dates
$start = $today->start(); // Carbon instance
$end = $today->end(); // Carbon instance
Instance Methods
start()
Get the start date of the range.
public function start(): ?Carbon
Returns: Carbon instance or null
Example:
$range = DateRange::today();
$startDate = $range->start(); // Carbon instance for today at 00:00:00
end()
Get the end date of the range.
public function end(): ?Carbon
Returns: Carbon instance or null
Example:
$range = DateRange::today();
$endDate = $range->end(); // Carbon instance for today at 23:59:59
preset()
Get the preset that was used to create this range.
public function preset(): ?DateRangePreset
Returns: DateRangePreset enum or null
Example:
$range = DateRange::lastWeek();
$preset = $range->preset(); // DateRangePreset::LastWeek
hasStart()
Check if the range has a start date.
public function hasStart(): bool
Returns: true if start date is set, false otherwise
hasEnd()
Check if the range has an end date.
public function hasEnd(): bool
Returns: true if end date is set, false otherwise
hasPreset()
Check if the range was created from a preset.
public function hasPreset(): bool
Returns: true if created from a preset, false otherwise
isNotAllTime()
Check if the range is not the “All Time” preset.
public function isNotAllTime(): bool
Returns: true if not all-time, false if it is all-time
Static Preset Methods
All preset methods return a DateRange instance with the appropriate start and end dates.
Past Date Ranges
today()
Create a range for today.
public static function today(): DateRange
Returns: Range from today 00:00:00 to today 23:59:59
yesterday()
Create a range for yesterday.
public static function yesterday(): DateRange
Returns: Range from yesterday 00:00:00 to yesterday 23:59:59
thisWeek()
Create a range for the current week.
public static function thisWeek(): DateRange
Returns: Range from start of week to end of week
lastWeek()
Create a range for last week.
public static function lastWeek(): DateRange
Returns: Range from start of last week to end of last week
last7Days()
Create a range for the last 7 days.
public static function last7Days(): DateRange
Returns: Range from 7 days ago to now
last14Days()
Create a range for the last 14 days.
public static function last14Days(): DateRange
Returns: Range from 14 days ago to now
last30Days()
Create a range for the last 30 days.
public static function last30Days(): DateRange
Returns: Range from 30 days ago to now
thisMonth()
Create a range for the current month.
public static function thisMonth(): DateRange
Returns: Range from start of month to end of month
lastMonth()
Create a range for last month.
public static function lastMonth(): DateRange
Returns: Range from start of last month to end of last month
last3Months()
Create a range for the last 3 months.
public static function last3Months(): DateRange
Returns: Range from 3 months ago to now
last6Months()
Create a range for the last 6 months.
public static function last6Months(): DateRange
Returns: Range from 6 months ago to now
thisQuarter()
Create a range for the current quarter.
public static function thisQuarter(): DateRange
Returns: Range from start of quarter to end of quarter
lastQuarter()
Create a range for last quarter.
public static function lastQuarter(): DateRange
Returns: Range from start of last quarter to end of last quarter
thisYear()
Create a range for the current year.
public static function thisYear(): DateRange
Returns: Range from start of year to end of year
lastYear()
Create a range for last year.
public static function lastYear(): DateRange
Returns: Range from start of last year to end of last year
yearToDate()
Create a range from the start of the year to now.
public static function yearToDate(): DateRange
Returns: Range from January 1st to now
Future Date Ranges
tomorrow()
Create a range for tomorrow.
public static function tomorrow(): DateRange
Returns: Range from tomorrow 00:00:00 to tomorrow 23:59:59
nextWeek()
Create a range for next week.
public static function nextWeek(): DateRange
Returns: Range from start of next week to end of next week
next7Days()
Create a range for the next 7 days.
public static function next7Days(): DateRange
Returns: Range from now to 6 days from now
next14Days()
Create a range for the next 14 days.
public static function next14Days(): DateRange
Returns: Range from now to 13 days from now
next30Days()
Create a range for the next 30 days.
public static function next30Days(): DateRange
Returns: Range from now to 29 days from now
nextMonth()
Create a range for next month.
public static function nextMonth(): DateRange
Returns: Range from start of next month to end of next month
next3Months()
Create a range for the next 3 months.
public static function next3Months(): DateRange
Returns: Range from now to 3 months from now
next6Months()
Create a range for the next 6 months.
public static function next6Months(): DateRange
Returns: Range from now to 6 months from now
nextQuarter()
Create a range for next quarter.
public static function nextQuarter(): DateRange
Returns: Range from start of next quarter to end of next quarter
nextYear()
Create a range for next year.
public static function nextYear(): DateRange
Returns: Range from start of next year to end of next year
Special Ranges
allTime()
Create a range from a specific start date to now.
public static function allTime($start): DateRange
The start date (parseable by Carbon)
Returns: Range from the specified start date to now
Example:
$range = DateRange::allTime('2020-01-01');
$range = DateRange::allTime(Carbon::parse('2020-01-01'));
DateRangePreset Enum
The DateRangePreset enum defines all available date range presets.
Enum Cases
enum DateRangePreset: string
{
case Today = 'today';
case Yesterday = 'yesterday';
case ThisWeek = 'thisWeek';
case LastWeek = 'lastWeek';
case Last7Days = 'last7Days';
case Last14Days = 'last14Days';
case Last30Days = 'last30Days';
case ThisMonth = 'thisMonth';
case LastMonth = 'lastMonth';
case Last3Months = 'last3Months';
case Last6Months = 'last6Months';
case ThisQuarter = 'thisQuarter';
case LastQuarter = 'lastQuarter';
case ThisYear = 'thisYear';
case LastYear = 'lastYear';
case YearToDate = 'yearToDate';
case Tomorrow = 'tomorrow';
case NextWeek = 'nextWeek';
case Next7Days = 'next7Days';
case Next14Days = 'next14Days';
case Next30Days = 'next30Days';
case NextMonth = 'nextMonth';
case Next3Months = 'next3Months';
case Next6Months = 'next6Months';
case NextQuarter = 'nextQuarter';
case NextYear = 'nextYear';
case AllTime = 'allTime';
case Custom = 'custom';
}
dates()
Get the start and end dates for the preset.
public function dates(?Carbon $start = null): array
start
Carbon|null
default:"null"
Required for AllTime preset, ignored for others
Returns: Array with two Carbon instances: [start, end]
Example:
[$start, $end] = DateRangePreset::Today->dates();
[$start, $end] = DateRangePreset::AllTime->dates(Carbon::parse('2020-01-01'));
label()
Get the human-readable label for the preset.
public function label(): string
Returns: Localized label string
Example:
$label = DateRangePreset::Last30Days->label(); // 'Last 30 Days'
$label = DateRangePreset::ThisWeek->label(); // 'This Week'
Usage Examples
Basic Usage
use Flux\DateRange;
// Get last 30 days
$range = DateRange::last30Days();
// Access dates
$startDate = $range->start();
$endDate = $range->end();
// Check preset
if ($range->preset() === DateRangePreset::Last30Days) {
// Handle last 30 days specifically
}
With Database Queries
$range = DateRange::thisMonth();
$results = DB::table('orders')
->whereBetween('created_at', [$range->start(), $range->end()])
->get();
Livewire Component
use Livewire\Component;
use Flux\DateRange;
class Analytics extends Component
{
public DateRange $dateRange;
public function mount()
{
$this->dateRange = DateRange::last7Days();
}
public function setRange(string $preset)
{
$this->dateRange = match($preset) {
'today' => DateRange::today(),
'yesterday' => DateRange::yesterday(),
'last7days' => DateRange::last7Days(),
'last30days' => DateRange::last30Days(),
default => DateRange::thisMonth(),
};
}
}
Notes
- All date ranges use Carbon for date manipulation
- Start times are set to 00:00:00 (start of day)
- End times are set to 23:59:59 (end of day)
- Week calculations use Carbon’s locale settings
- The
AllTime preset requires a start date parameter