This package is abandoned and no longer maintained. The author suggests using the getwarp/clock package instead.

Enhanced DateTime classes and Clock API implementation

Fund package maintenance!
Liberapay

3.0.x-dev 2022-04-03 12:49 UTC

This package is auto-updated.

Last update: 2022-06-12 16:26:03 UTC


README

Latest Version on Packagist Software License Total Downloads Code Coverage

This component provides enhanced DateTime classes and Clock API implementations in PHP.

Install

Via Composer

$ composer require spaceonfire/clock

Usage

DateTime:

use spaceonfire\Clock\DateTimeImmutableValue;

$time = DateTimeImmutableValue::now();
// $time = DateTimeImmutableValue::from('2020-02-02 20:22:02');
// $time = DateTimeImmutableValue::from(3 * DateTimeImmutableValue::HOUR); // now + 3 hours

\assert($time instanceof \DateTimeImmutable);

echo (string)$time;
// 2020-02-02 20:22:02
echo \json_encode($time);
// 2020-02-02T20:22:02+00:00

Clock:

use spaceonfire\Clock\FrozenClock;
use spaceonfire\Clock\SystemClock;

$clock = new FrozenClock(SystemClock::fromUTC());
$startedAt = $clock->now();
\sleep(5);
$finishedAt = $clock->now();
\assert($startedAt === $finishedAt);

$clock->reset();

Change log

Please see CHANGELOG for more information on what has changed recently.

Contributing

Report issues and send Pull Requests in the main spaceonfire repository. Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Credits

License

The MIT License (MIT). Please see License File for more information.