A teraz sprawdź dla godziny 01:00. Biorąc pod uwagę, że serwer stoi w Polsce (przesunięcie +1) powinniśmy otrzymać w wyniku 0 (o tej godzinie północ jest w Irlandii), a mamy 2.
@thek: Widzę, że tu jesteś - pomóż

Na razie z wykorzystaniem
http://www.timezoneconverter.com/cgi-bin/tzc.tzc zrobiłem sobie mapę - może komuś się przyda:
'0' => 1,
'0.5' => NULL,
'1' => 0,
'1.5' => 0.5,
'2' => -1,
'2.5' => -1.5,
'3' => -2,
'3.5' => -2.5,
'4' => -3,
'4.5' => -3.5,
'5' => -4,
'5.5' => -4.5,
'6' => -5,
'6.5' => -5.5,
'7' => -6,
'7.5' => -6.5,
'8' => -7,
'8.5' => -7.5,
'9' => -8,
'9.5' => -8.5,
'10' => -9,
'10.5' => NULL,
'11' => 14, // nowy dzien
'11.5' => 13.5,
'12' => 13,
'12.5' => 12.5,
'13' => 12,
'13.5' => 11.5,
'14' => 11,
'14.5' => 10.5,
'15' => 10,
'15.5' => 9.5,
'16' => 9,
'16.5' => 8.5,
'17' => 8,
'17.5' => 7.5,
'18' => 7,
'18.5' => 6.5,
'19' => 6,
'19.5' => 5.5,
'20' => 5,
'20.5' => 4.5,
'21' => 4,
'21.5' => 3.5,
'22' => 3,
'22.5' => 2.5,
'23' => 2,
'23.5' => 1.5
);
Za bardzo nie miałem tego jeszcze jak przetestować, ale powinno być ok. Kluczem jest godzina (np. 10 oznacza 10:00, 10.5 to 10:30), a wartością offset. Trochę niepokoi mnie godzina 00:30 i 01:30 - wygląda jakby północ mogła być w 2 strefach czasowych