I am developing a chatting messenger of website application. For my concept, I avoid to use timezone.
When a user post a message, I use php to get my current server date/time and save it onto database.
To display the time of all messages to the user, I just need find out the different between server time and user's system time. Let's say the different is 3 hours, i just need use mysql to retrieve recorded server time from database then add it with 3, eg : $message-time-display = $server-time-of-message-posted + $different.
For this solution, although the user's computer time may be incorrect, it will not effect the time records that saved on my database. And it will display the correct time when the users have corrected their computer's time. Is this solution is reliable? If so, why there is none of people doing this? Why so many people are using GMT or timezone thingy? Maybe I miss some important issue?
If you are writing an app that will only ever be on one server then it's ok to store time as your local server time. If your application will be deployed in many locations around the globe, then it makes better sense to store all times as UTC.
To my mind, user-provided times should be translated from user's timezone to UTC (or your server's timezone if it's your personal app) before being stored and should be translated back to the user's timezone when displayed.
So in your case, it should go something like this:
If you're displaying timestamps, it should go like this:
One quick fix is not to show the exact time, rather the time elapsed. Ex: 2 minutes ago
And then...
Since you know the elapsed time you can substract that from the user's current time. You can get the user current time with javascript.
Your solution should work as long as the user has the time set correctly. That is the only problem actually. Why do you think no one is doing it ? I guess most of them do and only the lazy ones relies on GMT/EST times.
Hint: I saw the user time sent in tracking codes such as google's analytics javascript, probably for computing the difference you are taking about ;)