With laravel-hours-helper
you can create an Illuminate\Support\Collection
of dates and/or times with a specific interval for a specific period. This helper could be useful in generating dropdown selections for a calendar meeting invite or scheduling the duration of an event. This helper also allows you to define the date formatting for each interval and to exclude intervals within the specific period.
Version | Release |
---|---|
11.x | ^1.3 |
10.x | ^1.3 |
9.x | ^1.3 |
Install the package via composer:
composer require label84/laravel-hours-helper
use Label84\HoursHelper\Facades\HoursHelper;
$hours = HoursHelper::create('08:00', '09:30', 30);
// Illuminate\Support\Collection
0 => '08:00',
1 => '08:30',
2 => '09:00',
3 => '09:30',
use Label84\HoursHelper\Facades\HoursHelper;
$hours = HoursHelper::create('11:00', '13:00', 60, 'g:i A');
// Illuminate\Support\Collection
0 => '11:00 AM',
1 => '12:00 PM',
2 => '1:00 PM',
use Label84\HoursHelper\Facades\HoursHelper;
$hours = HoursHelper::create('08:00', '11:00', 60, 'H:i', [
['09:00', '09:59'],
// more..
]);
// Illuminate\Support\Collection
0 => '08:00',
1 => '10:00',
2 => '11:00',
use Label84\HoursHelper\Facades\HoursHelper;
$hours = HoursHelper::create('23:00', '01:00', 60);
// Illuminate\Support\Collection
0 => '23:00',
1 => '00:00',
2 => '01:00',
use Label84\HoursHelper\Facades\HoursHelper;
$hours = HoursHelper::create('2022-01-01 08:00', '2022-01-01 08:30', 15, 'Y-m-d H:i');
// Illuminate\Support\Collection
0 => '2022-01-01 08:00',
1 => '2022-01-01 08:15',
2 => '2022-01-01 08:30',
You can find more examples in the test directory: tests/HoursHelperTest.php
./vendor/bin/phpstan analyze
./vendor/bin/phpunit