Re: Dates and different time zones

From: Date: Tue, 10 Apr 2007 14:14:24 +0000
Subject: Re: Dates and different time zones
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-252422@lists.php.net to get a copy of this message
----- Original Message ----- From: "Richard Davey" <rich@corephp.co.uk> To: <php-general@lists.php.net> Sent: Tuesday, April 10, 2007 3:43 PM Subject: Re: [PHP] Dates and different time zones
Niklas Karlsson wrote:
I am creating an international site that is going to get used in both American and Europe. And I wonder how to handle the different time zones, because I want the date and time to be correct after the place your using the application. I now have the date_default_timezone_set() to "Europe/Stockholm", and all dates that is saved into the database is timestamp with time zone (using PostgreSQL). So a wonder who to handle different time zones? Have any of your experience of this?
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) Satyam
Cheers, Rich -- Zend Certified Engineer http://www.corephp.co.uk "Never trust a computer you can't throw out of a window" -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.446 / Virus Database: 269.0.0/754 - Release Date: 09/04/2007 22:59


« previous php.general (#252422) next »