timezone_name_from_abbr() sometimes returns FALSE instead of an actual timezone: http://bugs.php.net/44780
It's possible to workaround it for some cases by getting the timezone name from timezone_abbreviations_list(). For example, if you have the GMT offset and want a timezone name:
<?php
/* Takes a GMT offset (in hours) and returns a timezone name */
function tz_offset_to_name($offset)
{
$offset *= 3600; // convert hour offset to seconds
$abbrarray = timezone_abbreviations_list();
foreach ($abbrarray as $abbr)
{
foreach ($abbr as $city)
{
if ($city['offset'] == $offset)
{
return $city['timezone_id'];
}
}
}
return FALSE;
}
?>
timezone_name_from_abbr
(PHP 5 >= 5.1.3)
timezone_name_from_abbr — Returns the timezone name from abbrevation
Descrição
string timezone_name_from_abbr
( string $abbr
[, int $gmtOffset
[, int $isdst
]] )
Parâmetros
- abbr
-
Time zone abbreviation.
- gmtOffset
-
Offset from GMT in seconds. Defaults to -1 which means that first found time zone corresponding to abbr is returned. Otherwise exact offset is searched and only if not found then the first time zone with any offset is returned.
- isdst
-
Daylight saving time indicator. If abbr doesn't exist then the time zone is searched solely by offset and isdst .
Valor Retornado
Returns time zone name on success or FALSE on failure.
Exemplos
Exemplo #1 A timezone_name_from_abbr() example
<?php
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr("", 3600, 0) . "\n";
?>
O exemplo acima irá imprimir algo similar a:
Europe/Berlin Europe/Paris
timezone_name_from_abbr
chris at mretc dot net
10-Nov-2008 05:25
10-Nov-2008 05:25
