This might do the trick
// using constants to start off here, you will need to change these to wherever your dates
// are coming from
$startDate = "01-01-2006";
$endDate = "04-01-2006";
// Convert to timestamps
$startStamp = parseDate( $startDate, "%d-%m-%Y" );
$endStamp = parseDate( $endDate, "%d-%m-%Y" );
$oneday = 60 * 60 * 24;
for ($i=$startStamp+$oneday; $i < $endStamp; $i=$startStamp+$oneday){
$inbetweenDate = date("%d-%m-%Y", $i);
echo ($inbetweenDate."<br");
}
// This function was contributed to the PHP manual by Jae Lee
function parseDate( $date, $format ) {
// Builds up date pattern from the given $format, keeping delimiters in place.
if( !preg_match_all( "/%([YmdHMp])([^%])*/", $format, $formatTokens, PREG_SET_ORDER ) ) {
return false;
}
foreach( $formatTokens as $formatToken ) {
$delimiter = preg_quote( $formatToken[2], "/" );
$datePattern .= "(.*)".$delimiter;
}
// Splits up the given $date
if( !preg_match( "/".$datePattern."/", $date, $dateTokens) ) {
return false;
}
$dateSegments = array();
for($i = 0; $i < count($formatTokens); $i++) {
$dateSegments[$formatTokens[$i][1]] = $dateTokens[$i+1];
}
// Reformats the given $date into US English date format, suitable for strtotime()
if( $dateSegments["Y"] && $dateSegments["m"] && $dateSegments["d"] ) {
$dateReformated = $dateSegments["Y"]."-".$dateSegments["m"]."-".$dateSegments["d"];
}
else {
return false;
}
if( $dateSegments["H"] && $dateSegments["M"] ) {
$dateReformated .= " ".$dateSegments["H"].":".$dateSegments["M"];
}
return strtotime( $dateReformated );
}