Thanks for good answers.
Okay, so I should set the default time zone to central GMT time, and then
save GMT offset for every user. This sounds realistic, because I don't think
that I need to correct the time for users that doesn't login.
So, if I now have the GMT offset for every user, how do I display the right
date? Can someone please show some phpcode? I would be very grateful if
someone could do that.
>>>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 ;)
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php