Hi Joe,

GMT isn't affected by daylight savings (altough in the UK we are using
British Summer Time at the moment, which is GMT +1), so that's the constant
you can work from if you're not experiencing daylight savings schemes where
you are.  I have written out an example for you below.

We get the Y-m-d H:i:s format of time using gmdate() (which Mysql likes).
We convert that lot to a timestamp.  The function I've created takes two
arguments: whether to add or take time from the timestamp that is generated,
and the offset in hours.  So, to emulate what Mysql's now() function does,
you can do something like this

<?

$now = GenerateOffset("-", "6"); // takes off 6 hours.
$query = @mysql_query("INSERT INTO table (datetime) VALUES ('$now')",
$connection);

?>

And you should get correct datetime formats for your timezone into your
table (providing you have put your correct offset from GMT).


<?

function GenerateOffset($plusminus, $offset) {

 $datetime = gmdate("Y-m-d H:i:s");
 list($date, $time) = explode(" ", $datetime);
 list($year, $month, $day) = explode("-", $date);
 list($hour, $minute, $second) = explode(":", $time);

 $timestamp = mktime($hour, $minute, $second, $month, $year, $day);

 if ($plusminus == "+") {
  $newtime = $timestamp + (3600 * $offset);
 } else {
  $newtime = $timestamp - (3600 * $offset);
 }

 $newdate = date("Y-m-d H:i:s", $newtime);

 return $newdate;
}

?>

Hope this helps.

James

"Joe Sheble )" <[EMAIL PROTECTED]> wrote in message
> Alas, I don't have this luxury since it's not my server, but one that is
> hosted with a web hosting provider.  They control the setup and
> configuration of the machines... since it's a shared server I doubt I'll
> convince them to set the timezone to my location, thus throwing everyone
> else on the same server out of whack...
>
> I can use the putenv() function though for use in PHP and then when saving
> the date and time into mySQL actually use the PHP date and time functions
> instead of the mySQL Now() function...
>
> Where would I find the TZ codes to use for my area?
>
> thanx
>
> > -----Original Message-----
> > From: Don Read [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, August 24, 2001 8:39 PM
> > To: Joe Sheble (Wizaerd)
> > Cc: General PHP List
> > Subject: RE: [PHP] local time v.s. server time
> >
> >
> >
> > On 25-Aug-2001 Joe Sheble \(Wizaerd\) wrote:
> > > My website is hosted with a provider, and there is a three hour
> > difference
> > > in timezones, so when saving date and times to the database,
> > they reflect
> > > the server time and not my own local time.  The clincher is I
> > know I could
> > > do some time math and just substract 3 hours, but I live in
> > Arizona, so we
> > > do not go through daylight savings time.  So right now it's a three
hour
> > > difference, but when the time change happens, I'll only be two
> > hours behind.
> > >
> > > Because of this, what is the best method to get my local date and time
> > > entered into the database instead of the server date and time??
> > >
> >
> > In my case the server is in Atlanta, but I have to sync with my
> > credit-card
> > processor on the left coast.
> >
> > So first i start the database (MySQL) on Pacific time with:
> > -----
> > TZ=PST8PDT
> > export TZ
> >     /usr/local/bin/safe_mysqld --user=mysql > /dev/null &
> >
> > ----
> > To make PHP date/time functions jive, during initialization:
> >
> >
> >    putenv('TZ=PST8PDT');  // Server on Pacific time
> >
> > No matter that i'm in Texas (CST), everything is now reported on Pac
time.
> >
> > Regards,
> > --
> > Don Read                                       [EMAIL PROTECTED]
> > -- It's always darkest before the dawn. So if you are going to
> >    steal the neighbor's newspaper, that's the time to do it.
> >
> >
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to