Namespace om\ICal\Timezone

Classes
AliasTimezoneResolver

Resolves Windows timezone names ("W. Europe Standard Time"), Outlook display names ("(UTC+01:00) Amsterdam, Berlin, ..."), prefixed names ("/mozilla.org/20070129_1/Europe/Paris"), quoted names and IANA names without their first part ("Argentina/Buenos_Aires"). The bundled map (CLDR plus aliases) is used first, so results do not depend on the ICU version; IntlTimeZone::getIDForWindowsID() of the intl extension is a fallback for newer Windows names.

CompositeTimezoneResolver

Asks the resolvers in order and returns the first result.

FallbackTimezoneResolver

Resolves every TZID to the configured timezone; use it as the last resolver.

IanaTimezoneResolver

Resolves IANA timezone names like "Europe/Prague" (case-insensitive).

ResolvedTimezone
VTimezoneBuilder

Creates a VTIMEZONE component (RFC 5545, section 3.6.5) of a PHP timezone from its transitions (DateTimeZone::getTransitions()) in a range of time. Transitions of the same kind (offsets, abbreviation, DST) on the same weekday of a month (e.g. the last Sunday of March) in consecutive years become one observance with a yearly RRULE; other transitions are observances of their own. A rule still in use after the range has no UNTIL, so the definition also covers later dates while the timezone keeps the rule. The first observance is the transition in effect at the start of the range.

VTimezoneResolver

Resolves a TZID defined by a VTIMEZONE component of the calendar. PHP cannot create a timezone from custom rules, so the IANA timezone with the same transitions around the reference date is used (see TimezoneGuesser), preferring the timezone of the same name. A definition without transitions becomes a fixed offset.

Interfaces
TimezoneResolver

Maps a TZID to a PHP timezone.

Enums
TimezoneSource

Where a timezone came from.