Edit report at https://bugs.php.net/bug.php?id=54495&edit=1
ID: 54495 User updated by: bandy dot chris at gmail dot com Reported by: bandy dot chris at gmail dot com Summary: Empty DateInterval has wrong days Status: Bogus Type: Bug Package: Date/time related Operating System: Linux, x86_64 PHP Version: 5.3.6 Assigned To: danielc Block user comment: N Private report: N New Comment: The docs are wrong in multiple places: DateInterval::__construct() example shows [days] => 0 instead of blank/false. DateInterval class page says if days are "unknown" the value is false. Can these pages be updated to indicate that "days" is only valid when the object is created as a diff of two dates? As far as I can tell, this means the *only* way "days" is valid is with the date_diff() function or DateTime::diff() method. Previous Comments: ------------------------------------------------------------------------ [2011-11-21 02:50:40] dani...@php.net "days" is a calculated field expressing how many days are between two compared dates. It is never set when instantiating a new date interval. The "d" property contains the number of days specified in the interval format. Everything is operating as expected. ------------------------------------------------------------------------ [2011-04-08 17:34:08] bandy dot chris at gmail dot com Description: ------------ A DateInterval created with a period that spans zero days reports $days = FALSE rather than 0. A DateInterval created by subtracting two DateTimes reports $days = 0 correctly. Test script: --------------- <?php // Period of zero days, zero seconds // $days = FALSE print_r(new DateInterval('P0Y')); // Difference of identical timestamps // $days = 0 print_r(date_diff(new DateTime('@1289997296'), new DateTime('@1289997296'))); Expected result: ---------------- DateInterval Object ( [y] => 0 [m] => 0 [d] => 0 [h] => 0 [i] => 0 [s] => 0 [invert] => 0 [days] => 0 ) DateInterval Object ( [y] => 0 [m] => 0 [d] => 0 [h] => 0 [i] => 0 [s] => 0 [invert] => 0 [days] => 0 ) Actual result: -------------- DateInterval Object ( [y] => 0 [m] => 0 [d] => 0 [h] => 0 [i] => 0 [s] => 0 [invert] => 0 [days] => ) DateInterval Object ( [y] => 0 [m] => 0 [d] => 0 [h] => 0 [i] => 0 [s] => 0 [invert] => 0 [days] => 0 ) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=54495&edit=1