date_period.phpt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. --TEST--
  2. DatePeriod
  3. --FILE--
  4. <?php
  5. date_default_timezone_set('UTC');
  6. $db = new DateTime( '2008-01-01' );
  7. $de = new DateTime( '2008-12-31' );
  8. $di = DateInterval::createFromDateString( 'first day of next month' );
  9. foreach ( new DatePeriod( $db, $di, $de ) as $dt )
  10. {
  11. echo $dt->modify( "3 tuesday" )->format( "l Y-m-d\n" );
  12. }
  13. ?>
  14. <?php
  15. $db = new DateTime( '2007-12-31' );
  16. $de = new DateTime( '2009-12-31 23:59:59' );
  17. $di = DateInterval::createFromDateString( 'last thursday of next month' );
  18. foreach ( new DatePeriod( $db, $di, $de, DatePeriod::EXCLUDE_START_DATE ) as $dt )
  19. {
  20. echo $dt->format( "l Y-m-d H:i:s\n" );
  21. }
  22. ?>
  23. --EXPECT--
  24. Tuesday 2008-01-15
  25. Tuesday 2008-02-19
  26. Tuesday 2008-03-18
  27. Tuesday 2008-04-15
  28. Tuesday 2008-05-20
  29. Tuesday 2008-06-17
  30. Tuesday 2008-07-15
  31. Tuesday 2008-08-19
  32. Tuesday 2008-09-16
  33. Tuesday 2008-10-21
  34. Tuesday 2008-11-18
  35. Tuesday 2008-12-16
  36. Thursday 2008-01-31 00:00:00
  37. Thursday 2008-02-28 00:00:00
  38. Thursday 2008-03-27 00:00:00
  39. Thursday 2008-04-24 00:00:00
  40. Thursday 2008-05-29 00:00:00
  41. Thursday 2008-06-26 00:00:00
  42. Thursday 2008-07-31 00:00:00
  43. Thursday 2008-08-28 00:00:00
  44. Thursday 2008-09-25 00:00:00
  45. Thursday 2008-10-30 00:00:00
  46. Thursday 2008-11-27 00:00:00
  47. Thursday 2008-12-25 00:00:00
  48. Thursday 2009-01-29 00:00:00
  49. Thursday 2009-02-26 00:00:00
  50. Thursday 2009-03-26 00:00:00
  51. Thursday 2009-04-30 00:00:00
  52. Thursday 2009-05-28 00:00:00
  53. Thursday 2009-06-25 00:00:00
  54. Thursday 2009-07-30 00:00:00
  55. Thursday 2009-08-27 00:00:00
  56. Thursday 2009-09-24 00:00:00
  57. Thursday 2009-10-29 00:00:00
  58. Thursday 2009-11-26 00:00:00
  59. Thursday 2009-12-31 00:00:00