Generate Intervals of Time With the Laravel Hours Helper
Published on by Paul Redmond
With the Laravel Hours Helper package, you can create a collection of dates and/of times with a specific interval (in minutes) for a particular period.
use Facades\Label84\HoursHelper\HoursHelper; $hours = HoursHelper::create('08:00', '09:30', 30);/*=> Illuminate\Support\Collection {#3529 all: [ "08:00", "08:30", "09:00", "09:30", ], }*/
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 of time:
$hours = HoursHelper::create('11:00', '13:00', 60, 'g:i A');/*Illuminate\Support\Collection {#3528 all: [ "11:00 AM", "12:00 PM", "1:00 PM", ],}*/
Further, this helper can deal with intervals past midnight (i.e., the next day) and over multiple days:
HoursHelper::create( '2021-01-01 22:00', '2021-01-03 13:00', 60, 'Y-m-d H:i');/*Illuminate\Support\Collection {#3566 all: [ "2021-01-01 22:00", "2021-01-01 23:00", "2021-01-02 00:00", "2021-01-02 01:00", "2021-01-02 02:00", ... ]}*/
You can learn more about this package, get full installation instructions, and view the source code on GitHub.
This package was submitted to our Laravel News Links section. Links is a place the community can post packages and tutorials around the Laravel ecosystem. Follow along on Twitter at @LaravelLinks