TimeZoneUtil
in package
Time zone name translation.
This file translates well-known time zone names into "Olson database" time zone names.
Tags
Table of Contents
- $map : mixed
- $microsoftExchangeMap : mixed
- List of microsoft exchange timezone ids.
- getIdentifiersBC() : array<string|int, mixed>
- This method returns an array of timezone identifiers, that are supported by DateTimeZone(), but not returned by DateTimeZone::listIdentifiers().
- getTimeZone() : DateTimeZone
- This method will try to find out the correct timezone for an iCalendar date-time value.
- loadTzMaps() : mixed
- This method will load in all the tz mapping information, if it's not yet done.
Properties
$map
public
static mixed
$map
= null
$microsoftExchangeMap
List of microsoft exchange timezone ids.
public
static mixed
$microsoftExchangeMap
= [
0 => 'UTC',
31 => 'Africa/Casablanca',
// Insanely, id #2 is used for both Europe/Lisbon, and Europe/Sarajevo.
// I'm not even kidding.. We handle this special case in the
// getTimeZone method.
2 => 'Europe/Lisbon',
1 => 'Europe/London',
4 => 'Europe/Berlin',
6 => 'Europe/Prague',
3 => 'Europe/Paris',
69 => 'Africa/Luanda',
// This was a best guess
7 => 'Europe/Athens',
5 => 'Europe/Bucharest',
49 => 'Africa/Cairo',
50 => 'Africa/Harare',
59 => 'Europe/Helsinki',
27 => 'Asia/Jerusalem',
26 => 'Asia/Baghdad',
74 => 'Asia/Kuwait',
51 => 'Europe/Moscow',
56 => 'Africa/Nairobi',
25 => 'Asia/Tehran',
24 => 'Asia/Muscat',
// Best guess
54 => 'Asia/Baku',
48 => 'Asia/Kabul',
58 => 'Asia/Yekaterinburg',
47 => 'Asia/Karachi',
23 => 'Asia/Calcutta',
62 => 'Asia/Kathmandu',
46 => 'Asia/Almaty',
71 => 'Asia/Dhaka',
66 => 'Asia/Colombo',
61 => 'Asia/Rangoon',
22 => 'Asia/Bangkok',
64 => 'Asia/Krasnoyarsk',
45 => 'Asia/Shanghai',
63 => 'Asia/Irkutsk',
21 => 'Asia/Singapore',
73 => 'Australia/Perth',
75 => 'Asia/Taipei',
20 => 'Asia/Tokyo',
72 => 'Asia/Seoul',
70 => 'Asia/Yakutsk',
19 => 'Australia/Adelaide',
44 => 'Australia/Darwin',
18 => 'Australia/Brisbane',
76 => 'Australia/Sydney',
43 => 'Pacific/Guam',
42 => 'Australia/Hobart',
68 => 'Asia/Vladivostok',
41 => 'Asia/Magadan',
17 => 'Pacific/Auckland',
40 => 'Pacific/Fiji',
67 => 'Pacific/Tongatapu',
29 => 'Atlantic/Azores',
53 => 'Atlantic/Cape_Verde',
30 => 'America/Noronha',
8 => 'America/Sao_Paulo',
// Best guess
32 => 'America/Argentina/Buenos_Aires',
60 => 'America/Godthab',
28 => 'America/St_Johns',
9 => 'America/Halifax',
33 => 'America/Caracas',
65 => 'America/Santiago',
35 => 'America/Bogota',
10 => 'America/New_York',
34 => 'America/Indiana/Indianapolis',
55 => 'America/Guatemala',
11 => 'America/Chicago',
37 => 'America/Mexico_City',
36 => 'America/Edmonton',
38 => 'America/Phoenix',
12 => 'America/Denver',
// Best guess
13 => 'America/Los_Angeles',
// Best guess
14 => 'America/Anchorage',
15 => 'Pacific/Honolulu',
16 => 'Pacific/Midway',
39 => 'Pacific/Kwajalein',
]
Source: http://msdn.microsoft.com/en-us/library/aa563018(loband).aspx
Methods
getIdentifiersBC()
This method returns an array of timezone identifiers, that are supported by DateTimeZone(), but not returned by DateTimeZone::listIdentifiers().
public
static getIdentifiersBC() : array<string|int, mixed>
We're not using DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC) because:
- It's not supported by some PHP versions as well as HHVM.
- It also returns identifiers, that are invalid values for new DateTimeZone() on some PHP versions. (See timezonedata/php-bc.php and timezonedata php-workaround.php)
Return values
array<string|int, mixed> —getTimeZone()
This method will try to find out the correct timezone for an iCalendar date-time value.
public
static getTimeZone(string $tzid[, Component $vcalendar = null ][, mixed $failIfUncertain = false ]) : DateTimeZone
You must pass the contents of the TZID parameter, as well as the full calendar.
If the lookup fails, this method will return the default PHP timezone (as configured using date_default_timezone_set, or the date.timezone ini setting).
Alternatively, if $failIfUncertain is set to true, it will throw an exception if we cannot accurately determine the timezone.
Parameters
- $tzid : string
- $vcalendar : Component = null
- $failIfUncertain : mixed = false
Return values
DateTimeZone —loadTzMaps()
This method will load in all the tz mapping information, if it's not yet done.
public
static loadTzMaps() : mixed