For my project(a web and iPhone based application) i need to collect a user's timezone so as to show him/her the relevant data.Some of the possibilities that I can think of are :
1.Getting it using user's IP (But what if the user is behind a proxy server)
2.Sending it with request params(But that will require extra param to be attached with request. Or may be collecting once for a session)
3.Passing it through cookies(Has same implication as setting in the parameters)
4.Based on user's zip code which I am collecting at the time of registeration but for unregistered user's that can browse through the app will not be able to see the relevant data.
So all in all each approach that I can think of now has one or more drawbacks. I just want to know what other approaches are there and which one is the best to use in such a case where user experience is not affected and user is not explicitly asked about his/her timezone.Also the approach should apply to both web and iPhone.