symfony/clock

Decouples applications from the system clock

Maintainers

👁 fabpot

Package info

github.com/symfony/clock

Homepage

pkg:composer/symfony/clock

Statistics

Installs: 200 203 964

Dependents: 198

Suggesters: 5

Stars: 433

v8.1.0 2026-05-29 05:06 UTC

Requires

Requires (Dev)

None

Suggests

None

Provides

Conflicts

None

Replaces

None

MIT 701ef4de9705d6c32292ebee5e8044094a09fbf6

timeclockpsr20


README

Symfony Clock decouples applications from the system clock.

Getting Started

composer require symfony/clock
use Symfony\Component\Clock\NativeClock;
use Symfony\Component\Clock\ClockInterface;

class MyClockSensitiveClass
{
 public function __construct(
 private ClockInterface $clock,
 ) {
 // Only if you need to force a timezone:
 //$this->clock = $clock->withTimeZone('UTC');
 }

 public function doSomething()
 {
 $now = $this->clock->now();
 // [...] do something with $now, which is a \DateTimeImmutable object

 $this->clock->sleep(2.5); // Pause execution for 2.5 seconds
 }
}

$clock = new NativeClock();
$service = new MyClockSensitiveClass($clock);
$service->doSomething();

Sponsor

This package is looking for a backer.

Help Symfony by sponsoring its development!

Resources