deoomen / clock-maestro
Single source of truth about time and date in your application
Installs: 13 852
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 1
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Single source of truth about time and date in your PHP application.
Installation
Use composer to install Clock Maestro into your project:
composer require deoomen/clock-maestro
How to use
Frozen clock
It always returns the same value - the time when it was initiated.
<?php use ClockMaestro\Clock\FrozenClockMaestro; // ... // Use system default timezone $clock = FrozenClockMaestro::fromSystemTimezone(); $now = $clock->now(); // Use UTC timezone $clock = FrozenClockMaestro::fromUTC(); $now = $clock->now(); // Use given timezone $timezone = new DateTimeZone('Mexico/General'); $clock = FrozenClockMaestro::fromTimezone($timezone); $now = $clock->now(); // Get time as string with default format: `Y-m-d\TH:i:sP` - (ATOM, compatible with ISO-8601 format) $clock = FrozenClockMaestro::fromUTC(); $nowAsString = $clock->toString(); // ex. 2021-05-13T12:30:00+00:00 // Get time as string with custom foramt $clock = FrozenClockMaestro::fromUTC(); $nowAsString = $clock->toString('d.m.Y H:i'); // ex. 13.05.2021 12:30
System clock
Returns the current time.
<?php use ClockMaestro\Clock\SystemClockMaestro; // ... // Use system default timezone $clock = SystemClockMaestro::fromSystemTimezone(); $now = $clock->now(); // Use UTC timezone $clock = SystemClockMaestro::fromUTC(); $now = $clock->now(); // Use given timezone $timezone = new DateTimeZone('Mexico/General'); $clock = SystemClockMaestro::fromTimezone($timezone); $now = $clock->now(); // Get time as string with default format: `Y-m-d\TH:i:sP` - (ATOM, compatible with ISO-8601 format) $clock = SystemClockMaestro::fromUTC(); $nowAsString = $clock->toString(); // ex. 2021-05-13T12:30:00+00:00 // Get time as string with custom foramt $clock = SystemClockMaestro::fromUTC(); $nowAsString = $clock->toString('d.m.Y H:i'); // ex. 13.05.2021 12:30