timezone_name_from_abbr () não reconhecendo corretamente

Basicamente meu site é mundial e eu preciso ser capaz de detectar fusos horários dos usuários e exibir tempos precisos. Eu tenho este roteiro muito legal que costumava funcionar perfeitamente bem até agora. Ele precisa de um deslocamento de fuso horário que eu busco com javascript e passe por um cookie.

if(!empty($_COOKIE['tz']) && $_COOKIE['tz']>=-12 && $_COOKIE['tz']<=13){
    $offset = $_COOKIE['tz'];
    $tz = timezone_name_from_abbr(null, $offset * 3600, true);
    if($tz === false) $tz = timezone_name_from_abbr(null, $offset * 3600, false);
    date_default_timezone_set($tz);
}else{
    date_default_timezone_set('UTC');
}

O problema é que atualmente o fuso horário no qual estou testando é Europa / Helsinque, que é UTC + 2 (sem horário de verão), mas por algum motivotimezone_name_from_abbr() decide 2 * 3600 é Europa / Paris. Eu sou muito ruim com datas e fusos horários, eu preciso desesperadamente de ajuda, por favor!

questionAnswers(1)

yourAnswerToTheQuestion