Skip to content

Commit 701d4d1

Browse files
committed
Add a helper TimeZone::fromDefaultTimeZone static constructor
1 parent d8bbfbc commit 701d4d1

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

src/TimeZone.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
use DateTimeZone;
1010
use Stringable;
1111

12+
use function date_default_timezone_get;
13+
1214
use const PHP_VERSION_ID;
1315

1416
/**
@@ -88,6 +90,11 @@ public static function fromNativeDateTimeZone(DateTimeZone $dateTimeZone): TimeZ
8890
return $parsed;
8991
}
9092

93+
public static function fromDefaultTimeZone(): TimeZone
94+
{
95+
return static::fromNativeDateTimeZone(new DateTimeZone(date_default_timezone_get()));
96+
}
97+
9198
/**
9299
* Returns an equivalent native `DateTimeZone` object for this TimeZone.
93100
*/

tests/TimeZoneTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
use DateTimeZone;
1212
use PHPUnit\Framework\Attributes\DataProvider;
1313

14+
use function date_default_timezone_get;
15+
1416
use const PHP_VERSION_ID;
1517

1618
/**
@@ -101,4 +103,14 @@ public static function providerFromNativeDateTimeZone(): iterable
101103
yield ['-02:30:30'];
102104
}
103105
}
106+
107+
public function testFromDefaultTimeZone(): void
108+
{
109+
$defaultTimeZone = date_default_timezone_get();
110+
111+
$timeZone = TimeZone::fromDefaultTimeZone();
112+
113+
self::assertInstanceOf(TimeZone::class, $timeZone);
114+
self::assertSame($defaultTimeZone, $timeZone->getId());
115+
}
104116
}

0 commit comments

Comments
 (0)