Skip to content

Commit add9a6a

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

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

src/TimeZone.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,13 @@ public static function fromNativeDateTimeZone(DateTimeZone $dateTimeZone): TimeZ
8888
return $parsed;
8989
}
9090

91+
public static function fromDefaultTimeZone(): TimeZone
92+
{
93+
return static::fromNativeDateTimeZone(date_default_timezone_get() === false
94+
? new DateTimeZone('UTC')
95+
: 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: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,18 @@ public static function providerFromNativeDateTimeZone(): iterable
101101
yield ['-02:30:30'];
102102
}
103103
}
104+
105+
public function testFromDefaultTimeZone(): void
106+
{
107+
$defaultTimeZone = date_default_timezone_get();
108+
if ($defaultTimeZone === false) {
109+
$defaultTimeZone = 'UTC';
110+
}
111+
112+
$timeZone = TimeZone::fromDefaultTimeZone();
113+
114+
self::assertInstanceOf(TimeZone::class, $timeZone);
115+
self::assertSame($defaultTimeZone, $timeZone->getId());
116+
}
117+
104118
}

0 commit comments

Comments
 (0)