This PHP 7.3+ package generates a 7 x 6 (42) or 7 x 5 (35) element array of the days of the month for the desired date. Each date is an instance of Carbon\Carbon
.
It automatically pads the beginning/end of the month with dates from the previous/next month. It can optionally pad with null
instead.
While it does not include an UI, you may use the generated matrix to build a month-grid calendar in the front-end technology of your choice.
NOTE For now, at least, weeks start with Monday.
- PHP 7.3+
You can install the package via composer:
composer require breadthe/php-simple-calendar
use Breadthe\SimpleCalendar\Calendar;
$date = '2020-03-24'; // ISO date
$calendar = new Calendar($date);
$currentMonth = $calendar->grid();
// or use the static constructor
$currentMonth = Calendar::make($date)->grid();
The start (first day) of the previous and next months is a convenience that might come in handy when building the "previous month"/"next month" navigation in a calendar UI. These properties will exist even if padWithNull()
is called.
$date = '2020-03-17';
$currentMonth = Calendar::make($date);
$currentMonth->startOfPrevMonth; // get the start of the previous month - instance of Carbon
$currentMonth->startOfPrevMonth->toDateString(); // '2020-02-01'
$currentMonth->startOfNextMonth; // get the start of the previous month - instance of Carbon
$currentMonth->startOfNextMonth->toDateString(); // '2020-04-01'
Here's an example of a simple calendar UI that can be built with this package.
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email omigoshdev@protonmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
This package was generated using the Laravel Package Boilerplate.