--TEST-- Extensive test for date_diff(). --SKIPIF-- --INI-- date.timezone=UTC --FILE-- add( new DateInterval( "P{$i}D" ) ); } for ( $i = 0; $i < COUNT; $i++) { // echo $dates[$i]->format( "Y-m-d\n" ); for ( $j = 0; $j < COUNT * 12; $j++) { $diff = date_diff( $dates[$i], $dates[$j] ); /* printf( "\t%s %s %3d %s\n", $dates[$i]->format( 'Y-m-d' ), $dates[$j]->format( 'Y-m-d' ), $diff->format( '%a' ), $diff->format( '%y-%m-%d' ) ); */ $current = clone $dates[$i]; $int = new DateInterval( $diff->format( 'P%yY%mM%dD' ) ); if ( $current > $dates[$j] ) { $current->sub( $int ); } else { $current->add( $int ); } if ( $current != $dates[$j] ) { echo "FAIL: ", $dates[$i]->format( 'Y-m-d' ), " + ", $int->format( '%y-%m-%d' ), " = ", $current->format( 'Y-m-d' ), " (", $dates[$j]->format( 'Y-m-d' ), ")\n"; } else { $ok++; } } } echo $ok, "\n"; ?> --EXPECT-- 172800