Intervalos de tiempo php

DateInterval

format("m-Y");
	$fin_mes = new Datetime($str_mes);
	$fin_mes ->add(new DateInterval('P1M'));
	$fin_mes ->sub(new DateInterval('P1D'));
	$fin_mes ->add(new DateInterval('PT23H59M59S'));

	$intervalo_dias = new DateInterval('P1D');
	
	$control_mes 		= $date->format("m-Y");
	$control_init_mes 	= $init->format("m-Y");
	$control_end_mes 	= $end->format("m-Y");

	echo "
".strftime("%B", strtotime($date->format("y-m-d")))."

"; if($control_init_mes == $control_mes) { $dias_final_mes = $date ->diff($fin_mes); echo "Dias hasta el final del mes: ".$dias_final_mes->format('%r%a')."

"; $dias_venta = new DatePeriod($init, $intervalo_dias,$fin_mes); } else if($control_end_mes == $control_mes) { $str_mes_fin = "1-".$date->format("m-Y"); $dia_pri_fin_promo = new Datetime($str_mes_fin); $dias_hasta_mes = $dia_pri_fin_promo ->diff($end); echo "Dias hasta final de la promo: ".$dias_hasta_mes->format('%r%a')."

"; $dias_venta = new DatePeriod($dia_pri_fin_promo, $intervalo_dias,$end); } else { $str_inicio_mes = "1-".$date->format("m-Y"); $dia_inicio_mes = new Datetime($str_inicio_mes); $dias_venta = new DatePeriod($dia_inicio_mes, $intervalo_dias,$fin_mes); } foreach($dias_venta as $dias){ echo $dias->format("d-m-Y")."
"; } } ?>