- printf: documentation ( source)
<?php
$start = DateTime::createFromFormat('d:m:Y H:m', '27:04:2013 16:30');
$end = DateTime::createFromFormat('d:m:Y H:m', '29:04:2013 22:30');
$diff = $start->diff($end);
$pad = ($start->format('His') > $end->format('His')) ? 2 : 1;
$days = $diff->d + $pad;
for ($i = 1; $i <= $days; $i++) {
if ($i === 1) {
printf("%s %s<br>", $start->format('d:m:Y H:m:s'), $start->format('d:m:Y 23:59:59'));
}
else if ($i === $days) {
printf("%s %s<br>", $end->format('d:m:Y 00:00:00'), $start->format('d:m:Y H:m:s'));
}
else {
printf("%s %s<br>", $end->format('d:m:Y 00:00:00'), $end->format('d:m:Y 23:59:59'));
}
$start->modify('+1 day');
}