Okay so, I decided to replace the way time zones were handled with something simpler.
Before, I was using your IP to tell. To do that, I had to use some external service, with limited access to their API. Then late at night while I was thinking to myself on my bed I went "Wait, this isn't a very good idea, isn't it?".
Well anyway, if you want to see how it's done now then here you go. Basically, now the website gets your timezone using JavaScript, and it uses your system's settings.
God, I'm tired of dealing with this. But at least that's over now... I think.... I hope?