Ignace Butera has shared a post to his site giving some advice about using the DatePeriod functionality from PHP's DateTime handling. The DatePeriod makes it easier to work with dates at certain intervals without having to calculate them manually.
With the introduction of the DateTimeImmutable object in PHP5.5, and a subsequent bug fix to DatePeriod in PHP5.5.8, the object results became rather interesting. To sum it up, when iterating over a DatePeriod, the datepoint returned is of the same instance as the starting datepoint. Let’s illustrate this by taking the first example and using a DateTimeImmutable object instead as the starting datepoint.
The post starts with a brief overview of the
DatePeriod functionality and a code example of it in use (along with two
DateTime objects for start/end dates). He shows how it returns
DateTimeImmutable objects and the properties they expose to get more information about the objects. He points out a few buggy points in the API, though, and makes a recommendation of a library that's a bit more consistent.