mirror of
https://github.com/beste/clock.git
synced 2026-08-17 17:47:13 +00:00
Initial Release
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Beste\Clock;
|
||||
|
||||
use Beste\Clock;
|
||||
use DateTimeImmutable;
|
||||
use Psr\Clock\ClockInterface;
|
||||
|
||||
final class MinuteClock implements Clock
|
||||
{
|
||||
private ClockInterface $clock;
|
||||
|
||||
private function __construct(ClockInterface $clock)
|
||||
{
|
||||
$this->clock = $clock;
|
||||
}
|
||||
|
||||
public static function wrapping(ClockInterface $clock): self
|
||||
{
|
||||
return new self($clock);
|
||||
}
|
||||
|
||||
public function now(): DateTimeImmutable
|
||||
{
|
||||
return $this->floor($this->clock->now());
|
||||
}
|
||||
|
||||
private function floor(DateTimeImmutable $now): DateTimeImmutable
|
||||
{
|
||||
return $now->setTime(
|
||||
(int) $now->format('H'),
|
||||
(int) $now->format('i')
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user