diff options
Diffstat (limited to 'vendor/sabre/vobject/lib/TimezoneGuesser/GuessFromLicEntry.php')
-rw-r--r-- | vendor/sabre/vobject/lib/TimezoneGuesser/GuessFromLicEntry.php | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/sabre/vobject/lib/TimezoneGuesser/GuessFromLicEntry.php b/vendor/sabre/vobject/lib/TimezoneGuesser/GuessFromLicEntry.php new file mode 100644 index 000000000..f340a3962 --- /dev/null +++ b/vendor/sabre/vobject/lib/TimezoneGuesser/GuessFromLicEntry.php @@ -0,0 +1,33 @@ +<?php + +declare(strict_types=1); + +namespace Sabre\VObject\TimezoneGuesser; + +use DateTimeZone; +use Sabre\VObject\Component\VTimeZone; +use Sabre\VObject\TimeZoneUtil; + +/** + * Some clients add 'X-LIC-LOCATION' with the olson name. + */ +class GuessFromLicEntry implements TimezoneGuesser +{ + public function guess(VTimeZone $vtimezone, bool $failIfUncertain = false): ?DateTimeZone + { + if (!isset($vtimezone->{'X-LIC-LOCATION'})) { + return null; + } + + $lic = (string) $vtimezone->{'X-LIC-LOCATION'}; + + // Libical generators may specify strings like + // "SystemV/EST5EDT". For those we must remove the + // SystemV part. + if ('SystemV/' === substr($lic, 0, 8)) { + $lic = substr($lic, 8); + } + + return TimeZoneUtil::getTimeZone($lic, null, $failIfUncertain); + } +} |