maarheeze / calendar-date
1.0.0
2026-03-06 21:26 UTC
Requires
- php: ^8.2
Requires (Dev)
- maarheeze/phpcs: ^1.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12
README
A timezone-agnostic calendar date value object for PHP. No time component, no timezone concerns.
Requirements
- PHP 8.2+
Installation
composer require maarheeze/calendar-date
Usage
Creating a date
CalendarDate::today(); CalendarDate::parse('2000-01-01'); CalendarDate::parse('today'); CalendarDate::parse('+3 weeks'); CalendarDate::instance($dateTimeInterface); CalendarDate::createFromFormat('d-m-Y', '01-01-2000');
Formatting
$date->format('Y-m-d'); $date->__toString(); // defaults to Y-m-d
Arithmetic
$date->addDays(7); $date->subDays(7); $date->addMonths(1); $date->subMonths(1); $date->addYears(1); $date->subYears(1);
All arithmetic methods return a new CalendarDate instance.
Comparison
$date->equalTo($other); $date->isBefore($other); $date->isAfter($other); $date->isToday(); $date->isPast(); $date->isFuture();
License
MIT