Satyam wrote:
Store all of your dates as GMT. Perform all date based calculations around GMT also, and then offset the values for localised display only.

This way you only need to store the GMT offsets for each user, i.e. GMT+1 or GMT-8 when it comes to displaying the dates to them. The trick is to use a constant base date for all data, and only being the user timezones into play when needed.

Actually, I find that it is better not to bother storing anything for the user at all. At the first chance, get some JavaScript to read the local time of the client machine and send it back to the server, either with the login data, using some AJAX or along with any link the user might click on the welcome screen, for example, the language choice. Then use the offset from his local time to the server time for every time information, substract it from any time information you read from them, add it to anything you send them. This works whether the user is registered or not, whether he/she travels or remains in the same time zone and spares you the trouble of keeping your IP to country to timezone table updated. It assumes that the user updates the time zone on his/her machine and if he doesn't it means she doesn't care, so why should you. (some travellers prefer to keep their portable machines set to their home-base time zone)

Of cause the major fault with this is that it can only display the CURRENT time offset. You *ALSO* need the users Daylight Saving Zone as well. This has been giving us great fun since the winter dates and times need a different offset to the summer ones. Something that simplistic browser time offset does not supply. :(

The only way to get this working properly at present is to get the user to set their time/daylight settings in their profile, and then you can provide the correct offset for all days on a calendar. Remember that for users WITH a daylight saving offset, one day each year has 23 hours and one 25 hours ;)

--
Lester Caine - G8HFL
-----------------------------
Contact - http://home.lsces.co.uk/lsces/wiki/?page=contact
L.S.Caine Electronic Services - http://home.lsces.co.uk
MEDW - http://home.lsces.co.uk/ModelEngineersDigitalWorkshop/
Treasurer - Firebird Foundation Inc. - http://www.firebirdsql.org/index.php

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to