innmind / time
Time manipulation
Installs: 304
Dependents: 3
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
pkg:composer/innmind/time
Requires
- php: ~8.4
- innmind/immutable: ~6.0
- psr/log: ~3.0
Requires (Dev)
- innmind/black-box: ~6.5
- innmind/coding-standard: ~2.0
- innmind/static-analysis: ~1.3
README
This library allows you to handle time down to the millisecond. The point was to also be explicit for every component of dates, this is why every php magic strings have been converted into objects.
All objects are immutable.
Installation
composer require innmind/time
Usage
Accessing time
use Innmind\Time\{ Clock, Point, Format, }; use Innmind\Immutable\Attempt; $clock = Clock::live(); $now = $clock->now(); // return an instance of Point echo $now->toString(); // 2016-10-11T12:17:30.123456+02:00 $epoch = $clock->at( '1970-01-01T00:00:00.000000+00:00', Format::iso8601(), ); // Attempt<Point>
Here we reference 2 points in time, the first is the exact moment we call now down to the microsecond and the second one is the epoch time.
The method at() accepts any string that is allowed by \DateTimeImmutable.
Halt process
use Innmind\Time\{ Halt Period, }; function yourApp(Halt $halt): void { // do something $halt(Period::minute(42))->unwrap(); // do some more } yourApp(Halt::new());
This example will halt your program for 42 minutes.
Logging
use Innmind\Time\Halt; use Psr\Log\LoggerInterface; $halt = Halt::logger($halt, /** an instance of LoggerInterface */); ## Documentation Full documentation is available at <https://innmind.org/time/>.