Yeah, I'm quite aware of the struggle with timezones. You apparently try to pick the timezone based on my ip address, which is often good enough, but there are better solutions. I think you should be able to get the timezone with javascript and convert it on the client. This is the best solution IMHO but that requires javascript. You should also aways offer a dropdown dialog with _all timezones_. You currently only have 5 timezones to choose from, none which I live in.
All in all, you should do: If the user has already selected a timezone, use this one. This is the most accurate option, you'll ever get. If that was not provided, try to use javascript. If the user does not use Javascript, fall back to the IP address.