Releases: digital-craftsman-de/date-time-precision
Releases · digital-craftsman-de/date-time-precision
Cleanup, clock, more guards and PHP 8.4 support
- Breaking change: Removed deprecated
isDate*
methods fromMoment
. - Breaking change: Dropped custom normalizers in favor of
digital-craftsman/self-aware-normalizers
. - Breaking change Dropped support for PHP 8.2.
- Added
Clock
implementation withSystemClock
andFrozenClock
. - Added guard methods for comparison methods to
Moment
,Date
andTime
likemustBeEqualTo
with option to throw custom exception. - Changed normalization of
Moment
to include microseconds. - Added support for PHP 8.4.
Streamlined comparisons
- Added
is*InTimeZone(Time | Date | Month | Year $equalTo, \DateTimeZone $timeZone): bool
methods toMoment
. - Added missing methods to precision classes.
- Deprecated
isDate*InTimeZone
methods fromMoment
.
Dropped support for Symfony 6.3, added support for Symfony 7
- Breaking change: Dropped support for Symfony 6.3.
- Added support for Symfony 7.
- Fixed naming in functions of
Moment
class. Parameter was called$dateTime
, but should have been$moment
.
Added missing return type
- Added missing return type in
DateTimePrecisionExtension
.
DateTime is now Moment with more precision, PHP 8.3 support
- Breaking change: Dropped support for PHP 8.1.
- Breaking change: Dropped support for Symfony below 6.3.
- Breaking change: Instances of
DateTime
are now always created in the UTC timezone (independent on the configured default timezone in PHP). - Breaking change: Renamed package to
digital-craftsman/date-time-precision
. - Breaking change: Renamed
DateTime
toMoment
including normalizer and Doctrine type. - Breaking change: Updated Doctrine moment type to support milliseconds.
- Added support for PHP 8.3.
- Added support for the new normalizer caching mechanism of Symfony 6.3.
- Switched classes to be
readonly
(instead of just the properties). - Automatically register the Doctrine types.
- Removed custom code in
Date
andMonth
and used PHP SPL to handle date comparisons. - Added
DateTime->isNotAfter
- Added
DateTime->isNotAfterOrEqualTo
. - Added
DateTime->isNotBeforeOrEqualTo
. - Added
DateTime->isNotBefore
. - Added
DateTime->isDateNotAfterInTimeZone
. - Added
DateTime->isDateNotAfterOrEqualToInTimeZone
. - Added
DateTime->isDateNotBeforeInTimeZone
. - Added
DateTime->isDateNotBeforeOrEqualToInTimeZone
. - Added
Date->isNotAfter
. - Added
Date->isNotBefore
. - Added
Date->isNotBeforeOrEqualTo
. - Added
Date->isNotAfterOrEqualTo
. - Added
Month->isNotBefore
. - Added
Month->isNotBeforeOrEqualTo
. - Added
Month->isNotAfter
. - Added
Month->isNotAfterOrEqualTo
. - Added
Year->isNotBefore
. - Added
Year->isNotAfterOrEqualTo
. - Added
Year->isNotAfter
. - Added
Year->isNotBeforeOrEqualTo
.
Added Date->datesUntil, Year->yearsUntil and Year-modify
- Added
Date->datesUntil(Date $date, PeriodLimit $periodLimit = PeriodLimit::INCLUDING_START_AND_END): array
. - Added
Year->yearsUntil(Year $year, PeriodLimit $periodLimit = PeriodLimit::INCLUDING_START_AND_END): array
. - Added
Year->modify(string $modifier): Year
.
Added missing requiresSQLCommentHint functions to Doctrine types
- Added missing
DateTimeType->requiresSQLCommentHint(): bool
. - Added missing
DateType->requiresSQLCommentHint(): bool
. - Added missing
TimeType->requiresSQLCommentHint(): bool
.
Added compareTo functions
- Added
Year->compareTo(self $year): int
. - Added
Month->compareTo(self $month): int
. - Added
Date->compareTo(self $date): int
. - Updated
Time->compareTo(self $time): int
to use less custom code.
Added new utility methods and added Year normalizer to registered normalizers
- Added
DateTime->isDateNotEqualToInTimeZone(DateTime $dateTime, \DateTimeZone $timeZone): bool
. - Added
Date->toDateTimeInTimeZone(\DateTimeZone $timeZone): self
. - Added
Date->modifyInTimeZone(string $modify, \DateTimeZone $timeZone): self
. - Added
Month->toDateTimeInTimeZone(\DateTimeZone $timeZone): self
. - Added
Month->modifyInTimeZone(string $modify, \DateTimeZone $timeZone): self
. - Added
Year->toDateTimeInTimeZone(\DateTimeZone $timeZone): self
. - Added
Year->modifyInTimeZone(string $modify, \DateTimeZone $timeZone): self
. - Added
YearNormalizer
to automatic registered normalizers.
Add DateTime->isDate*InTimeZone
- Added
isDateAfterInTimeZone(DateTime $dateTime, \DateTimeZone $timeZone): bool
inDateTime
. - Added
isDateAfterOrEqualToInTimeZone(DateTime $dateTime, \DateTimeZone $timeZone): bool
inDateTime
. - Added
isDateEqualToInTimeZone(DateTime $dateTime, \DateTimeZone $timeZone): bool
inDateTime
. - Added
isDateBeforeInTimeZone(DateTime $dateTime, \DateTimeZone $timeZone): bool
inDateTime
. - Added
isDateBeforeOrEqualToInTimeZone(DateTime $dateTime, \DateTimeZone $timeZone): bool
inDateTime
.