W3docs

timezone_name_from_abbr()

In this article, we will cover everything you need to know about the PHP function date_timezone_name_from_abbr(). We'll explore its syntax, parameters, and

Introduction

In this article, we will cover the syntax, parameters, and return value of the PHP function timezone_name_from_abbr(), along with practical examples of its usage.

Understanding the PHP function timezone_name_from_abbr()

The timezone_name_from_abbr() function in PHP returns the full IANA time zone name (such as America/New_York) that matches a given abbreviation (such as EST). It returns the timezone name on success or false on failure.

This is the reverse of looking up an abbreviation for a known zone. A common use case is parsing a date string where only the abbreviation is available (for example, a log line containing EST) and you need a canonical zone identifier to build a DateTimeZone.

Note: This function is notoriously unreliable because many timezone abbreviations are ambiguous or non-standard — EST, IST, and CST each map to several regions around the world. The PHP manual recommends using DateTimeZone for production applications. When using timezone_name_from_abbr(), always provide the $gmtOffset parameter so PHP can disambiguate between zones that share an abbreviation.

Syntax

The syntax of the timezone_name_from_abbr() function is as follows:

The syntax of PHP timezone_name_from_abbr() function

<?php

string|false timezone_name_from_abbr(string $abbr, int $gmtOffset = -1, int $isdst = -1)

Parameters

The function takes three parameters as follows:

  • $abbr - The abbreviated name of the time zone (for example, EST or CEST). Case-insensitive.
  • $gmtOffset - The GMT offset of the time zone in seconds (not hours). This parameter is optional, but highly recommended. If not provided (-1), PHP guesses based on $abbr alone, which may return false or an incorrect timezone due to ambiguous abbreviations.
  • $isdst - A flag indicating whether daylight saving time is in effect: 1 for DST, 0 for standard time, -1 (the default) to ignore. When set, only zones matching that DST state are considered.

A handy way to compute the offset in seconds is hours × 3600 — for example, UTC−5 is -5 * 3600 = -18000.

Return Value

The timezone_name_from_abbr() function returns the timezone name (a string such as America/New_York) on success, or false on failure when no zone matches the given abbreviation and offset.

Examples

Let's look at some practical examples of how the timezone_name_from_abbr() function can be used in PHP.

Example of using timezone_name_from_abbr() function in PHP

php— editable, runs on the server

In the above examples, we are passing the abbreviated time zone names EST and PST along with their respective GMT offsets in seconds. The function returns the corresponding full timezone names, America/New_York and America/Los_Angeles respectively. Always check for false to handle cases where the abbreviation is unrecognized.

The result can then be passed straight into a DateTimeZone to do real date math:

<?php

$name = timezone_name_from_abbr('CET', 3600);     // "Europe/Berlin"
$date = new DateTime('2024-01-15 12:00', new DateTimeZone($name));
echo $date->format('Y-m-d H:i T'); // outputs "2024-01-15 12:00 CET"

Conclusion

We've covered the syntax and usage of the PHP function timezone_name_from_abbr(). This function can convert abbreviated timezone names to their full identifiers, though because abbreviations are ambiguous you should always supply $gmtOffset and prefer DateTimeZone for robust applications. We hope this article has been helpful.

Practice

Practice
What does the timezone_name_from_abbr() function in PHP return?
What does the timezone_name_from_abbr() function in PHP return?
Was this page helpful?