breadthe / php-simple-calendar
Generates a monthly array of dates for displaying in a calendar grid
Installs: 2 596
Dependents: 1
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: ^7.3|^7.4|^8.0
- nesbot/carbon: ^2.32
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-10-24 09:21:28 UTC
README
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.
Requirements
- PHP 7.3+
Installation
You can install the package via composer:
composer require breadthe/php-simple-calendar
Usage
Calendar grid generation
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();
Start of previous/next months
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'
UI Example
Here's an example of a simple calendar UI that can be built with this package.
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email omigoshdev@protonmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
Laravel/PHP Package Boilerplate
This package was generated using the Laravel Package Boilerplate.