> > -----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