downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

timezone_name_get> <timezone_location_get
Last updated: Fri, 14 Aug 2009

view this page in

timezone_name_from_abbr

(PHP 5 >= 5.1.3)

timezone_name_from_abbrRetourne le nom du fuseau horaire à partir de son abréviation

Description

string timezone_name_from_abbr ( string $abbr [, int $gmtOffset= -1 [, int $isdst= -1 ]] )

Liste de paramètres

abbr

Abréviation du fuseau horaire.

gmtOffset

Décalage à partir du GMT en seconde. La valeur par défaut est -1 ce qui signifie que le premier fuseau horaire trouvé correspondant à abbr est retourné. Autrement, le décalage exact est recherché et seulement s'il n'est pas trouvé alors le premier fuseau horaire avec n'importe quel décalage est retourné.

isdst

Indicateur d'heure avancée. Si abbr n'existe pas, alors le fuseau horaire est recherché seulement par offset et isdst .

Valeurs de retour

Retourne un nom de fuseau horaire en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple #1 Exemple avec timezone_name_from_abbr()

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo 
timezone_name_from_abbr(""36000) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Europe/Berlin
Europe/Paris

Voir aussi



add a note add a note User Contributed Notes
timezone_name_from_abbr
Master Tablu
24-Feb-2009 04:03
Another way to do this is to wrap the function in a class that extends the DateTimeZone class:

<?php

/**
 * Helps with timezones.
 * @link http://us.php.net/manual/en/class.datetimezone.php
 *
 * @package  Date
 */
class Helper_DateTimeZone extends DateTimeZone
{
   
/**
     * Converts a timezone hourly offset to its timezone's name.
     * @example $offset = -5, $isDst = 0 <=> return value = 'America/New_York'
     *
     * @param float $offset The timezone's offset in hours.
     *                      Lowest value: -12 (Pacific/Kwajalein)
     *                      Highest value: 14 (Pacific/Kiritimati)
     * @param bool  $isDst  Is the offset for the timezone when it's in daylight
     *                      savings time?
     *
     * @return string The name of the timezone: 'Asia/Tokyo', 'Europe/Paris', ...
     */
   
final public static function tzOffsetToName($offset, $isDst = null)
    {
        if (
$isDst === null)
        {
           
$isDst = date('I');
        }

       
$offset *= 3600;
       
$zone    = timezone_name_from_abbr('', $offset, $isDst);

        if (
$zone === false)
        {
            foreach (
timezone_abbreviations_list() as $abbr)
            {
                foreach (
$abbr as $city)
                {
                    if ((bool)
$city['dst'] === (bool)$isDst &&
                       
strlen($city['timezone_id']) > 0    &&
                       
$city['offset'] == $offset)
                    {
                       
$zone = $city['timezone_id'];
                        break;
                    }
                }

                if (
$zone !== false)
                {
                    break;
                }
            }
        }
   
        return
$zone;
    }
}
?>

Then you could do something like this:

<?php
$Dtz
= new Helper_DateTimeZone(Helper_DateTimeZone::tzOffsetToName(-5));
var_dump($Dtz->getName());

string(16) "America/New_York"
?>
chris at mretc dot net
11-Nov-2008 02:25
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_get> <timezone_location_get
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites