DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0)

DateTimeZone::listAbbreviations -- timezone_abbreviations_listReturns associative array containing dst, offset and the timezone name

Description

Object oriented style

public static array DateTimeZone::listAbbreviations ( void )

Procedural style

Return Values

Returns array on success or FALSE on failure.

Examples

Example #1 A timezone_abbreviations_list() example

<?php
$timezone_abbreviations 
DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

The above example will output something similar to:

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

See Also

Коментарии

Note that the dst field is of boolean type, so if you are doing an identity comparison, you need to test for true or false, not 0 or 1.  For example:

<?php
  $timezone_abbreviations 
DateTimeZone::listAbbreviations();
  foreach (
$timezone_abbreviations["est"] as $tz) {
    echo 
$tz['timezone_id'];
   
// if ($tz['dst'] === 1) will always evaluate to false
   
if ($tz['dst'] === true) {
      echo 
" (DST observed)<br />\n";
    }
   
// Could use else here, but for illustration...
   
if ($tz['dst'] === false) {
      echo 
" (DST not observed)<br />\n";
    }
  }
?>
2009-04-04 11:32:38
http://php5.kiev.ua/manual/ru/datetimezone.listabbreviations.html
This method returns an associative array containing some 'major' timezones (like CEST), which on their own contain more specific 'geographic' timezones (like Europe/Amsterdam).

If you're using these timezones and their offset/DST information, it's extremely important to realize the following:

*It seems like ALL DIFFERENT OFFSET/DST CONFIGURATIONS (including historical configurations) of each timezone are included!*

For example, Europe/Amsterdam can be found six times in the output of this function. Two occurrences (offset 1172/4772) are for the Amsterdam time used until 1937; two (1200/4800) are for the time that was used between 1937 and 1940; and two (3600/4800) are for the time used since 1940.

*Therefore, YOU CANNOT RELY ON THE OFFSET/DST INFORMATION RETURNED BY THIS FUNCTION as being currently correct/in use!*

If you want to know the current offset/DST of a certain timezone, you'll have to do something like this:

<?php
$now 
= new DateTime(null, new DateTimeZone('Europe/Amsterdam'));
echo 
$now->getOffset();
?>

P.S. I'm sorry for my use of caps lock in this post, but as this behavior is not described in the documentation, I considered it to be important enough to shout. Normally I don't do such things :)
2014-01-18 01:32:14
http://php5.kiev.ua/manual/ru/datetimezone.listabbreviations.html

    Поддержать сайт на родительском проекте КГБ