Edit report at https://bugs.php.net/bug.php?id=64489&edit=1

 ID:                 64489
 Comment by:         phpbug at samic dot us
 Reported by:        phpbug at samic dot us
 Summary:            wrong caclulation with date_diff
 Status:             Feedback
 Type:               Bug
 Package:            Date/time related
 Operating System:   Linux Ubuntu
 PHP Version:        5.4Git-2013-03-22 (snap)
 Block user comment: N
 Private report:     N

 New Comment:

My default timezone is set to "Asia/Tehran"
as I'm here ;)


Previous Comments:
------------------------------------------------------------------------
[2013-03-22 15:58:55] ahar...@php.net

Which time zone is your PHP installation using — ie what do you get if you 
echo 
date_default_timezone_get()?

------------------------------------------------------------------------
[2013-03-22 12:00:26] phpbug at samic dot us

Description:
------------
date_diff has a problem with a specific date
it doesn't calculate days between two dates correctly
please see the example
( it seems there is a similar problems: 
http://www.php.net/manual/en/datetime.diff.php#101990 )

Test script:
---------------
$interval = date_diff(date_create('2000-03-21'), date_create('2013-03-21'));
echo $interval->format('%a') . "<br>\n";  // will output 4747


$interval = date_diff(date_create('2000-03-21'), date_create('2013-03-22'));
echo $interval->format('%a') . "<br>\n";  // will output 4749   --- WRONG!


$interval = date_diff(date_create('2000-03-21'), date_create('2013-03-23'));
echo $interval->format('%a') . "<br>\n";  // will output 4749


$interval = date_diff(date_create('2000-03-21'), date_create('2013-03-24'));
echo $interval->format('%a') . "<br>\n";  // will output 4750

Expected result:
----------------
4747
4748
4749
4750


Actual result:
--------------
4747
4749
4749
4750



the second calculation is wrong


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=64489&edit=1

Reply via email to