Re: plugging gmmktime value into gmdate yields incorrect date
| From: | Jim Lucas | Date: | Thu, 15 Feb 2007 22:39:24 +0000 |
| Subject: | Re: plugging gmmktime value into gmdate yields incorrect date | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-248935@lists.php.net to get a copy of this message | ||
Brad Fuller wrote:
if you run: echo gmdate('I', gmmktime(0,0,0,3,23,2000) ); //Capital 'i' I (capital i) - "1" if Daylight Savings Time, "0" otherwise. This might help you -- Enjoy, Jim Lucas Different eyes see different things. Different hearts beat on different strings. But there are times for you and me when all such things agree. - Rush-----Original Message----- From: Brad Fuller [mailto:bfuller@cpacampaigns.com] Sent: Thursday, February 15, 2007 3:48 PM To: 'Terra Frost'; 'Peter Lauri' Cc: php-general@lists.php.net Subject: RE: [PHP] plugging gmmktime value into gmdate yields incorrect dateYes, I was a little off... gmmktime() takes a GMT date and converts it to a local unix timestamp. gmdate() takes a local unix timestamp and converts it to a GMT date. So in theory you *should* get the same date you put in, if using both functions like your example. I think you are on the right track with the Daylight Saving time issue. Starting this year, DST in the U.S. begins in March instead of April. Given that the year of your date input is 2000, it shouldn't be affected, but perhaps that is in fact the culprit? Your date 3/23 falls in between the previous and future DST start dates. Hmm... Have you gotten similar results using a different month/day? -Brad-----Original Message----- From: Terra Frost [mailto:terrafrost@gmail.com] Sent: Thursday, February 15, 2007 3:20 PM To: Peter Lauri Cc: php-general@lists.php.net Subject: Re: [PHP] plugging gmmktime value into gmdate yields incorrect date date('Z') on the server producing the incorrect output returns 3600. On the other two, I get -18000 and -21600. That said, I don't see how that'd make a difference. The whole reason I'm using the gm* functions, in the first place, is because those are supposed to work with a fixed timezone - GMT. Testament to this is the fact that gmdate('Z') returns 0 on all three of those. Peter Lauri wrote:dateAnd what are the time zones for those two different machines? And whatisthe time? :) Best regards, Peter Lauri www.dwsasia.com - company web site www.lauri.se - personal web site www.carbonfree.org.uk - become Carbon Free -----Original Message----- From: Terra Frost [mailto:terrafrost@gmail.com] Sent: Thursday, February 15, 2007 8:47 PM To: php-general@lists.php.net Subject: [PHP] plugging gmmktime value into gmdate yields incorrectI may be way off... but isn't it redundant to use both gmdate() and gmmktime()? I thought each of these functions were used to convert your local time into GMT... So for example if you're GMT+5, the gmmktime() would subtract 5 hours, and then gmdate() would subtract another 5 hours? Like I said - I could be way off, but just a thought. -BradI tried running the following script on three different servers: <?php echo gmdate('m, d, Y', gmmktime(0,0,0,3,23,2000) ); ?> On two of the servers, I got 03, 23, 2000 back. On the other, however, I got 03, 22, 2000. This doesn't make any sense to me. On the servers that return the correct date (03, 23, 2000), gmmktime(0,0,0,3,23,2000) returns 953769600. On the server that returns the incorrect date (03, 22, 2000), gmmktime(0,0,0,3,23,2000) returns 953766000. There's a difference of 3600 between the two, which makes me think that some daylight savings time setting is to blame.-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php