diff --git a/src/TimeZone.php b/src/TimeZone.php index 915e8d2..b067f2a 100644 --- a/src/TimeZone.php +++ b/src/TimeZone.php @@ -9,6 +9,8 @@ use DateTimeZone; use Stringable; +use function date_default_timezone_get; + use const PHP_VERSION_ID; /** @@ -88,6 +90,11 @@ public static function fromNativeDateTimeZone(DateTimeZone $dateTimeZone): TimeZ return $parsed; } + public static function fromDefaultTimeZone(): TimeZone + { + return static::fromNativeDateTimeZone(new DateTimeZone(date_default_timezone_get())); + } + /** * Returns an equivalent native `DateTimeZone` object for this TimeZone. */ diff --git a/tests/TimeZoneTest.php b/tests/TimeZoneTest.php index 227aead..b1d64c5 100644 --- a/tests/TimeZoneTest.php +++ b/tests/TimeZoneTest.php @@ -11,6 +11,8 @@ use DateTimeZone; use PHPUnit\Framework\Attributes\DataProvider; +use function date_default_timezone_get; + use const PHP_VERSION_ID; /** @@ -101,4 +103,14 @@ public static function providerFromNativeDateTimeZone(): iterable yield ['-02:30:30']; } } + + public function testFromDefaultTimeZone(): void + { + $defaultTimeZone = date_default_timezone_get(); + + $timeZone = TimeZone::fromDefaultTimeZone(); + + self::assertInstanceOf(TimeZone::class, $timeZone); + self::assertSame($defaultTimeZone, $timeZone->getId()); + } }