DatePeriod::__construct
  Creates a new DatePeriod object
  
 
  Description
  
   public  DatePeriod::__construct
    ( DateTimeInterface $start
   , DateInterval $interval
   , int $recurrences
   [, int $options
  ] )
  
   public  DatePeriod::__construct
    ( DateTimeInterface $start
   , DateInterval $interval
   , DateTimeInterface $end
   [, int $options
  ] )
  
   public  DatePeriod::__construct
    ( string $isostr
   [, int $options
  ] )
  
  
 
  Parameters
  
   
    
     - 
start
- 
      
       The start date of the period.
       
- 
interval
- 
      
       The interval between recurrences within the period.
       
- 
recurrences
- 
      
       The number of recurrences.
       
- 
end
- 
      
       The end date of the period.
       
- 
isostr
- 
      
       An ISO 8601 repeating interval specification.
       
- 
options
- 
      
       Can be set to DatePeriod::EXCLUDE_START_DATEto
       exclude the start date from the set of recurring dates within the
       period.
 
 
 
 
  Examples
  
   
    Example #1 DatePeriod example
    
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';
// All of these periods are equivalent.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>
     
    The above example will output:
2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29
 
    
  
  
   
    Example #2 DatePeriod example with DatePeriod::EXCLUDE_START_DATE
    
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$period = new DatePeriod($start, $interval, $end,
                         DatePeriod::EXCLUDE_START_DATE);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
// Note that, in this case, 2012-07-01 is not printed.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>
     
    The above example will output:
2012-07-08
2012-07-15
2012-07-22
2012-07-29
 
    
  
  
 
  Notes
  
   Unbound numbers of repetitions as specified by ISO 8601 section 4.5
   "Recurring time interval" are not supported, i.e. neither passing
   "R/..." as isostr nor passing
   NULL as end would work.