A small immutable value object representing elapsed time.
- Measuring execution time
- Logging
- Reporting
- Working with time differences
composer require elephant-php/durationfrom dates
use ElephantPhp\Duration\Duration;
$start = new DateTimeImmutable('2026-01-01 10:00:00');
$end = new DateTimeImmutable('2026-01-01 11:01:01');
$duration = Duration::between($start, $end);from seconds
$duration = Duration::fromSeconds(3661);from since to now
$duration = Duration::since($startedAt);$duration->hours();
$duration->minutes();
$duration->seconds();
⚠️ Noteminutes()andseconds()return remaining parts (0–59), not total values.
$duration->toTotalSeconds();
$duration->toTotalMinutes();
$duration->toTotalHours();// arguments are labels
$duration->format('h', 'm', 's'); // "1 h, 1 m, 1 s"
$duration->toHms(); // "01:01:01"$duration = Duration::fromSeconds(3661);
echo $duration->format('h', 'm', 's'); // 1 h, 1 m, 1 s
echo $duration->toHms(); // 01:01:01
echo $duration->seconds(); // 1
echo $duration->minutes(); // 1
echo $duration->hours(); // 1
echo $duration->toTotalSeconds(); // 3661
echo $duration->toTotalMinutes(); // 61
echo $duration->toTotalHours(); // 1MIT License
Please see LICENSE for more information.