Common interface for reading the clock.

Installs: 89 415 922

Dependents: 147

Suggesters: 0

Security: 0

Stars: 377

Watchers: 12

Forks: 7

Open Issues: 0

1.0.0 2022-11-25 14:36 UTC

This package is auto-updated.

Last update: 2024-05-21 15:52:20 UTC


This repository holds the interface for PSR-20.

Note that this is not a clock of its own. It is merely an interface that describes a clock. See the specification for more details.


composer require psr/clock


If you need a clock, you can use the interface like this:


use Psr\Clock\ClockInterface;

class Foo
    private ClockInterface $clock;

    public function __construct(ClockInterface $clock)
        $this->clock = $clock;

    public function doSomething()
        /** @var DateTimeImmutable $currentDateAndTime */
        $currentDateAndTime = $this->clock->now();
        // do something useful with that information

You can then pick one of the implementations of the interface to get a clock.

If you want to implement the interface, you can require this package and implement Psr\Clock\ClockInterface in your code.

Don't forget to add psr/clock-implementation to your composer.jsons provide-section like this:

  "provide": {
    "psr/clock-implementation": "1.0"

And please read the specification text for details on the interface.