Bug #10694 Updated: mktime leap year bug
| From: | schnitten at gmx dot at | Date: | Fri, 31 Aug 2001 18:05:10 +0000 |
| Subject: | Bug #10694 Updated: mktime leap year bug | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-64855@lists.php.net to get a copy of this message | ||
ID: 10694
User updated by: schnitten@gmx.at
Reported By: schnitten@gmx.at
Status: Assigned
Bug Type: Date/time related
Operating System: Redhat 6.2
PHP Version: 4.0.4
Old Assigned To: derick
Assigned To:
New Comment:
The problem is how you look at it:
mktime first calculates year + month...
the last step is to add the seconds.
I wanted this the other way round. Would be a nice feature to select the priority of the different
input values. When you use unix timestamps for calculations its very difficult to add 1 year (or
something similar) to that date...
Previous Comments:
------------------------------------------------------------------------
[2001-08-31 12:06:36] sander@php.net
Status after almost three months???
------------------------------------------------------------------------
[2001-05-07 04:23:18] derick@php.net
Assigning to myself
------------------------------------------------------------------------
[2001-05-07 01:50:21] schnitten@gmx.at
first of all:
I use php 4.0.1pl2 and don't have the possibility to upgrade. Please verify with latest
version.
I tried to add 12 months to a given timestamp and figured out that mktime() doesn't include a
29th February into its calculations. Effect is, that following code doesn't jump forward 1 year
during each loop. Every leap year 1 day gets lost!
$a = mktime(0,0,0,1,1,1970);
for ($i=0; $i<20; $i++) {
$a = mktime(0,0,3600 +$a,1+12,1,1970);
$b = date("d-m-Y", $a);
print "Date: $b<br>";
}
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=10694&edit=1