On 10 April 2004 16:11, Brian Dunning wrote: > Check this out: I'm returning a list of the last 30 days, looping > through i, subtracting it from $end_date where $end_date is 2004-04-10 > 00:00:00. I'm just trying to derive a timestamp $check_date for each > iteration, like 1081321200. Here's the code within the loop: > > $check_date = mktime(0, 0, 0, substr($end_date, 5, 2), > substr($end_date, 8, 2) - $i, substr($end_date, 0, 4), -1); > > Note that this works PERFECTLY for every date, and always has. Except > for one particular day. When $end_date - $i is supposed to be > April 4, > the timestamp returned is -7262, which it thinks is 12/31/1969.
This looks like a Daylight Savings timeshift bug on your system (and there are more of those around than you can shake a stick at!). Because of such problems, you should never use a time anywhere near the DST hour-change when you are calculating consecutive dates, and most especially not a time that could conceivably be shifted into the adjacent day (i.e. 00:00-00:59) -- always use something squarely in the middle of the day, such as midday: $check_date = mktime(12, 0, 0, substr($end_date, 5, 2), substr($end_date, 8, 2) - $i, substr($end_date, 0, 4), -1); Cheers! Mike --------------------------------------------------------------------- Mike Ford, Electronic Information Services Adviser, Learning Support Services, Learning & Information Services, JG125, James Graham Building, Leeds Metropolitan University, Beckett Park, LEEDS, LS6 3QS, United Kingdom Email: [EMAIL PROTECTED] Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php