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!