Iterating over a dateperiod twice is broken

Bug #52668 Iterating over a dateperiod twice is broken
Submitted: 2010-08-22 16:24 UTC Modified: 2010-08-30 17:32 UTC
From: bugs dot php dot net at muh-die-kuh dot de Assigned: derick (profile)
Status: Closed Package: Date/time related
PHP Version: 5.3.3 OS:
Private report: No CVE-ID: None

 [2010-08-22 16:24 UTC] bugs dot php dot net at muh-die-kuh dot de

Description:
------------
Iterating over a dateperiod twice does not "reset" the iterator,
but starts the second iteration at the endate.

This is kindof an duplicate of #46874, but Derick asked me to add it anyways.

Test script:
---------------
<?php

$start    = new DateTime('20101212');
$interval = DateInterval::createFromDateString('next day');
$dp = new DatePeriod($start, $interval, 0);
foreach($dp as $dt) {
    echo $dt->format('r') . "\n"; // Sun, 12 Dec 2010 00:00:00 +0100
}
foreach($dp as $dt) {
    echo $dt->format('r') . "\n"; // Mon, 13 Dec 2010 00:00:00 +0100
}

Expected result:
----------------
Sun, 12 Dec 2010 00:00:00 +0100
Sun, 12 Dec 2010 00:00:00 +0100

Actual result:
--------------
Sun, 12 Dec 2010 00:00:00 +0100
Mon, 13 Dec 2010 00:00:00 +0100

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports

 [2010-08-23 14:31 UTC] johannes@php.net

-Status: Open +Status: Assigned -Assigned To: +Assigned To: derick

 [2010-08-30 17:32 UTC] derick@php.net

-Status: Assigned +Status: Closed

 [2010-08-30 17:32 UTC] derick@php.net

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.