PHP/MySQL timezones screwing up

OK,

I have a problem. I'm setting up a sight that will end up holding large amounts of client data records. Because the clients can export and import their data, i have to be able to maintain session based timezones with in the site and server.

Right now my server is set to GMT. When i run the date command on the shell i see, which is correct at time of posting.

    Fri Mar 18 20:04:32 GMT 2011

Then when i do hwclock --show is gives me, again this is was correct.

    Fri 18 Mar 2011 08:06:22 PM GMT

Now when i tell php to change it's timezone to GMT-4 (since that is my timezone factoring in DST)

    date_default_timezone_set('Etc/GMT-4');
    echo date("m/d/Y g:i:s A T");

I get 03/19/2011 00:11:35 AM GMT-5 Is is totally wrong in stead of taking 5 hours away it added 5 hours.

So then I did this:

    date_default_timezone_set('Etc/GMT+4');
    echo date("m/d/Y g:i:s A T");

I got 03/18/2011 4:14:56 PM GMT+4. Which is the correct time. MySQL does the same thing. It seems like both are wanting to invert the time adjustments. Am i missing something on the settings?

LVL 5
PyromanciAsked:
Who is Participating?
 
Ray PaseurConnect With a Mentor Commented:
Please see the large red warning on the man page here, and see the comments in the User-Contributed notes:
http://php.net/manual/en/timezones.others.php

A line of code that says this explicitly defies the warning, and ignores the notes.  
date_default_timezone_set('Etc/GMT+4');

Don't do that.  Instead use one of the recommended Time Zone names.

Let me try this again... and then post back with a code sample showing the issue.  Thanks. ~Ray
0
 
ramelongCommented:
You may try this in order to determinate if anything else is wrong:
<?
ini_set('display_errors', 1);
error_reporting(E_ALL);
echo date("m/d/Y g:i:s A T");
?>

Open in new window

since some notices and warnings of time issues related are hidden in default error reporting configuration.

Additionally, accepted time zones are listed in http://ar.php.net/manual/en/timezones.php
0
 
PyromanciAuthor Commented:
There are no errors reported.
0
 
Ray PaseurCommented:
This article is kind of lengthy, but it will answer your questions about time and localization.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_201-Handling-date-and-time-in-PHP-and-MySQL.html

Please read it over and then post back with a code sample showing the issue, if you still have questions.

best regards, ~Ray
0
 
PyromanciAuthor Commented:
That post didn't really give me that much information that i did not know. Nor does it cover why when i tell it -5 it adds 5 and when tell it +5 it minus's 5
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.