go to bug id or search bugs for
Currently it is not possible to access the DatePeriod recurrences property when no endDate is specified.
$start = new DateTimeImmutable('2012-07-01');
$end = new DateTimeImmutable('2012-07-31');
$interval = new DateInterval('P7D');
$recurrences = 4;
$periodWithRecurrences = new DatePeriod($start, $interval, $recurrences);
$periodWithRecurrences->getRecurrences(); //returns 4
$periodWithRecurrences->getEndDate(); //returns null
$periodWithoutRecurrences = new DatePeriod($start, $interval, $end);
$periodWithoutRecurrences->getRecurrences(); //returns null
$periodWithoutRecurrences->getEndDate(); //returns DateTimeInterface object equivalent to $end
Fatal error: Uncaught Error: Call to undefined method DatePeriod::getRecurrences()
Add a Patch
Add a Pull Request
There are a few undocumented dynamic properties, including one for the number of recurrences (which is calculated when using an end date).
But don't go using them just yet.
HHVM implements a few properties in the class definition but makes them private: $start, $interval, $end, $options, $current, $recurrances [sic], and $iterKey. PHP's properties are created on the object and not defined on the class.
- ReflectionObject: https://3v4l.org/8BKTW
- ReflectionClass: https://3v4l.org/CfZuJ
Since there's already getDateInterval, getEndDate, and getStartDate, maybe making the properties real and private and creating a getRecurrences would be best.
(HHVM does not have a getRecurr[ae]nces method either)
To be honest one should definetly not rely on those undocumented properties because they are "broken" the interval property returns a DateInterval object in invalid state and the enddate/reccurences properties values sometimes are badly inferred.
That's why I thought adding getRecurrences was to be consider a bug fix since:
- it would give full access to the DatePeriod property in a standardized way.
- the others getter methods were added in a patch version of PHP5.6.
- i don't think an RFC is needed for this kind of patch given the other getter methods are already present and this addition just complement them
Automatic comment on behalf of email@example.com
Log: Fixed bug #75113: Added DatePeriod::getRecurrences() method.
Automatic comment from SVN on behalf of cmb
Log: Document #75113: adding missing DatePeriod::getRecurrences method