Unfortunately, I just came across your question, so the answer may seem a bit late, but nonetheless, I am posting it.
You can definitely convert the time offset to the name of the time zone. This is mainly done by the following line of code:
$zoneName = timezone_name_from_abbr('', $offset*3600);
where $offset is the time offset in hours. This simplified method may fail under certain conditions due to some known errors / functions in PHP, therefore there is an extended shell with a workaround that can be found on the php.net website. Among other things, the shell also supports daylight saving time flag.
Indeed, as @zerkms noted in his answer, there is no one-to-one relationship between the time offset and the time zone name, because multiple time zones usually have the same offset. This function returns the first time zone found that matches the given offset. Which one comes first is not predetermined.
But in any case, this function is very convenient for setting the preferred time zone for the user session using date_default_timezone_set , which accepts only the time zone identifier, but the user can be presented with a time offset in the web user interface. We donβt care which identifier is being used (behind the scenes) if we know that the time offset is correct.
Stan source share