RE: Dates and different time zones

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux