Repository navigation
Breaking Changes
- Duration Refactoring:
Durationis now strictly time-based (hours, minutes, seconds, nanos).- Removed
years,months,daysproperties and factory methods fromDuration. - Removed
LocalDate::plusDuration()andLocalDate::minusDuration(). UseplusPeriod()instead.
New Features
- Period:
- Introduced
Periodclass for date-based amounts (years, months, days). - Added
LocalDate::plusPeriod()andLocalDate::minusPeriod(). - Added
LocalDateTime::plusPeriod()andLocalDateTime::minusPeriod().
- Introduced
- LocalDateTimeDelta:
- Introduced
LocalDateTimeDeltavalue object combiningPeriodandDuration. - Supports full ISO-8601 duration parsing (e.g.,
P1Y2M3DT4H5M6S). - Added
LocalDateTime::plusDelta()andLocalDateTime::minusDelta().
- Introduced
- ISO-8601 Parsing:
- Centralized ISO-8601 parsing logic in
Iso8601Parser. - Unified parsing behavior across
Period,Duration, andLocalDateTimeDelta.
- Centralized ISO-8601 parsing logic in
Improvements
- Introduced a LocalTime value object with validation, arithmetic helpers, and TemporalAccessor integration.
- Add InvalidTime exception for clearer range violations.
- Add LocalDateTime aggregate covering combined date/time arithmetic, Instant conversion, and TemporalAccessor support.
All tests passing (262 tests, 516 assertions). PHPStan level max: No errors.