> > -----Original Message-----
> > From: Jens Lehmann [mailto:[EMAIL PROTECTED]]
> > Sent: 27 May 2002 12:48
> >
> > > > -----Original Message-----
> > > > From: Jens Lehmann [mailto:[EMAIL PROTECTED]]
> > > > Sent: 24 May 2002 20:31
> > > >
> > > > time() returns the number of seconds since the Unix Epoch to
> > > > the current
> > > > local time
> > > >
> > > > gmtime() should return the number of seconds since the Unix
> > > > Epoch to the
> > > > current GM-time
> > > >
> > > > Do you understand now?
> >
> > > Uh, no, actually now I'm more confused!
> >
> > I can understand that you're confused. :-) Or am I?
> >
> > > As I understand it, a Unix timestamp is *always* the number
> > > of seconds since 1-Jan-1970 GMT ("the Unix epoch"), and
> > > so is always a GMT time.
> >
> > Imho no, because 1-Jan-1970 GMT is just the "starting point",
> > the result depends on which timezone your server is located in.
> > Please correct me if I'm wrong here!
>
> Well, I'm not sure, because I think we're talking at cross purposes.  I'm
*still* not sure what you want gmtime() to achieve that's different from
time(), because, as far as I can see, the two scenarios you describe above
actually return the same value.  Or, to put it another way, because a
timestamp is *always in GMT*, it returns the time since 1-Jan-1970 00:00:00,
full stop, period, end of story.  In other words, timestamps operate in a
single timezone, and it's up to anything else that works with a timestamp to
do the timezone (and daylight-savings) corrections.  (This is also why you
get the anomaly of 23- and 25-hour days in areas which have daylight-savings
timeshifts.)
>
> Let's take some detailed examples, and maybe you can explain what you're
trying to get with your gmtime() (and why!):
>
> In a purely GMT zone, with local time 27-May-2002 12:00:00, the UNIX
timestamp is 1022500800.
>
> In a nominally GMT zone, but with daylight-savings in effect (such as
British Summer Time!), with local time 27-May-2002 13:00:00, the UNIX time
stamp for this is also 1022500800.
>
> Likewise, in a GMT+0200 zone, a local time of 27-May-2002 14:00:00 also
gives a timestamp of 1022500800.
>
> In fact, this same timestamp of 1022500800 also represents all of these
local times:
>
>     27-May-2002 04:00 -0800
>     27-May-2002 07:00 -0500
>     27-May-2002 17:00 +0500
>     27-May-2002 23:00 +1100
>
> and even such oddities as:
>
>     27-May-2002 21:30 (Western Australia / Northern Territory)
>
> Thus, given the timestamp of 1022500800, it's the job of date() to
determine the correct timezone and daylight-savings offset and apply them
before formatting the output; gmdate() just formats it without applying any
offsets.  Likewise, mkdate() and gmmkdate() translate the other way
respectively with and without timezone correction.
>
> Forgive me if I've gone on at what seems like excessive length, but I just
wanted to make sure we both know exactly what it is we're talking about!
>
> Cheers!
>
> Mike
>

@matt&mike:

Thank you for your explanations. I'm a bit sorry for having
asked such a question. The deeper I thought about it the
more confused I was. I see now that there's no sense in a
function like gmtime(). Sorry.

Jens







-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to