awd-studio / vo-date-time
Provides a useful wrapper for dates as an value-object implementation.
v1.1.1
2025-03-20 12:22 UTC
Requires
- php: ^8.3
Requires (Dev)
- dg/bypass-finals: ^1.4
- ergebnis/composer-normalize: ^2.45
- phpspec/prophecy: ^1.20
- phpspec/prophecy-phpunit: ^2.3
- phpunit/phpunit: ^11.0
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2025-03-20 12:23:39 UTC
README
Provides a useful wrapper for dates as an value-object implementation.
Instances are immutable.
Requirements:
- php >= 8.3
Installation:
composer install awd-studio/vo-date-time
Usage:
<?php use Awd\ValueObject\DateTime; use Awd\ValueObject\DateTimePeriod; // Comparing dates: $dateTime1 = DateTime::fromString('2024-12-28'); $dateTime2 = DateTime::fromString('2024-12-30'); $dateTime3 = DateTime::fromString('2024-12-01'); $dateTime1->isEqual($dateTime2); // false $dateTime1->isGreaterThan($dateTime2); // false $dateTime1->isLessThanOrEquals($dateTime2); // true $dateTime1->isBetween($dateTime3, $dateTime2) // true // Modifying $nextDayDt = $dateTime1->nextDay(); // Returns new instance for next day. $copyDt = $dateTime1->copy(); // Returns a copy with same date. $modDt = $dateTime1->modified(new DateTimePeriod(days: 1)); // Tomorrow. $modDt = $dateTime1->modified(new DateTimePeriod(minutes: -5)); // 5 mins ago. $modDt = $dateTime1->modified(new DateTimePeriod(weeks: 2, days: -2)); // In 12 days.