date_period-immutable.phpt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. --TEST--
  2. DatePeriod
  3. --FILE--
  4. <?php
  5. date_default_timezone_set('UTC');
  6. $db1 = new DateTimeImmutable( '2008-01-01' );
  7. $db2 = new DateTime( '2008-01-01' );
  8. $de = new DateTime( '2008-03-31' );
  9. $di = DateInterval::createFromDateString( 'first day of next month' );
  10. foreach ( new DatePeriod( $db1, $di, $de ) as $dt )
  11. {
  12. echo get_class( $dt ), "\n";
  13. echo $dt->format( "l Y-m-d\n" );
  14. echo $dt->modify( "3 tuesday" )->format( "l Y-m-d\n" );
  15. echo $dt->format( "l Y-m-d\n\n" );
  16. }
  17. foreach ( new DatePeriod( $db2, $di, $de ) as $dt )
  18. {
  19. echo get_class( $dt ), "\n";
  20. echo $dt->format( "l Y-m-d\n" );
  21. echo $dt->modify( "3 tuesday" )->format( "l Y-m-d\n" );
  22. echo $dt->format( "l Y-m-d\n\n" );
  23. }
  24. ?>
  25. --EXPECT--
  26. DateTimeImmutable
  27. Tuesday 2008-01-01
  28. Tuesday 2008-01-15
  29. Tuesday 2008-01-01
  30. DateTimeImmutable
  31. Friday 2008-02-01
  32. Tuesday 2008-02-19
  33. Friday 2008-02-01
  34. DateTimeImmutable
  35. Saturday 2008-03-01
  36. Tuesday 2008-03-18
  37. Saturday 2008-03-01
  38. DateTime
  39. Tuesday 2008-01-01
  40. Tuesday 2008-01-15
  41. Tuesday 2008-01-15
  42. DateTime
  43. Friday 2008-02-01
  44. Tuesday 2008-02-19
  45. Tuesday 2008-02-19
  46. DateTime
  47. Saturday 2008-03-01
  48. Tuesday 2008-03-18
  49. Tuesday 2008-03-18