<?php declare(strict_types=1); namespace Beste\Clock; use Beste\Clock; use DateTimeImmutable; use DateTimeZone; use InvalidArgumentException; use Throwable; final class LocalizedClock implements Clock { private DateTimeZone $timeZone; private function __construct(DateTimeZone $timeZone) { $this->timeZone = $timeZone; } /** * @param DateTimeZone|string $timeZone */ public static function in($timeZone): self { if (is_string($timeZone)) { try { $timeZone = new DateTimeZone($timeZone); } catch (Throwable $e) { throw new InvalidArgumentException($e->getMessage()); } } return new self($timeZone); } public function now(): DateTimeImmutable { return new DateTimeImmutable('now', $this->timeZone); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
FrozenClock.php | File | 929 B | 0644 |
|
LocalizedClock.php | File | 871 B | 0644 |
|
MinuteClock.php | File | 724 B | 0644 |
|
SystemClock.php | File | 370 B | 0644 |
|
UTCClock.php | File | 495 B | 0644 |
|
WrappingClock.php | File | 1.48 KB | 0644 |
|