Annotation of embedaddon/php/ext/date/tests/date_diff.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Extensive test for date_diff().
3: --SKIPIF--
4: <?php
5: if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
6: ?>
7: --INI--
8: date.timezone=UTC
9: --FILE--
10: <?php
11: $ok = 0;
12: define( 'COUNT', 120 );
13: $d0 = new DateTime('2009-11-20');
14: for ( $i = 0; $i < COUNT * 12; $i++ )
15: {
16: $d = clone $d0;
17: $dates[$i] = $d->add( new DateInterval( "P{$i}D" ) );
18: }
19:
20: for ( $i = 0; $i < COUNT; $i++)
21: {
22: // echo $dates[$i]->format( "Y-m-d\n" );
23: for ( $j = 0; $j < COUNT * 12; $j++)
24: {
25: $diff = date_diff( $dates[$i], $dates[$j] );
26: /*
27: printf( "\t%s %s %3d %s\n",
28: $dates[$i]->format( 'Y-m-d' ),
29: $dates[$j]->format( 'Y-m-d' ),
30: $diff->format( '%a' ),
31: $diff->format( '%y-%m-%d' )
32: );
33: */
34:
35: $current = clone $dates[$i];
36: $int = new DateInterval( $diff->format( 'P%yY%mM%dD' ) );
37: if ( $current > $dates[$j] )
38: {
39: $current->sub( $int );
40: }
41: else
42: {
43: $current->add( $int );
44: }
45: if ( $current != $dates[$j] )
46: {
47: echo "FAIL: ",
48: $dates[$i]->format( 'Y-m-d' ), " + ",
49: $int->format( '%y-%m-%d' ), " = ",
50: $current->format( 'Y-m-d' ), " (",
51: $dates[$j]->format( 'Y-m-d' ), ")\n";
52: }
53: else
54: {
55: $ok++;
56: }
57: }
58: }
59:
60: echo $ok, "\n";
61: ?>
62: --EXPECT--
63: 172800
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>