- sprintf: documentation ( source)
<?php
$begin = new DateTime( '2015-01-01' );
$end = new DateTime( '2017-12-26' );
$interval = new DateInterval('P6M');
$period = new DatePeriod($begin, $interval, $end);
foreach ( $period as $dt )
$endDate = (new $dt)->add($interval)->sub(new DateInterval('PT1D'));
echo sprintf("%s-%s\n", $dt->format("Y-m-d"), $endDate->format("Y-m-d"));