> For the complete documentation index, see [llms.txt](https://senselab.gitbook.io/senselab-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://senselab.gitbook.io/senselab-docs/vendor/psr/clock.md).

# PSR Clock

This repository holds the interface for [PSR-20](https://www.php-fig.org/psr/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.

## Installation

```bash
composer require psr/clock
```

## Usage

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

```php
<?php

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](https://packagist.org/providers/psr/clock-implementation) 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.json`s `provides`-section like this:

```json
{
  "provides": {
    "psr/clock-implementation": "1.0"
  }
}
```

And please read the [specification text](https://github.com/php-fig/fig-standards/blob/master/proposed/clock.md) for details on the interface.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://senselab.gitbook.io/senselab-docs/vendor/psr/clock.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
