Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá novamente, estou desenvolvendo uma aplicação de reservas com calendário de disponibilidade, estou com uma dúvida num FOR, segue o código...:
// Variáveis
$ano = date("Y");
$cont = 0;
$dia = date("d");
$dias = array();
$mes = date("m");
$totalDias = date("t");
$primeiroDia = date("D", mktime(0, 0, 0, $mes, 1, $ano));
$diaprimeiro = "01";
$diafinal = UltimoDia($ano,$mes);
$data_inicio = $ano."-".$mes."-".$diaprimeiro;
$data_fim = $ano."-".$mes."-".$diafinal;
$dias_reservas = array();for($d = 0; $d < $totalDias; $d++)$dias[$d] = array_push($dias, $d+1);
$sql1 = mysql_query("SELECT * FROM reservas WHERE data_inicio BETWEEN '$data_inicio' AND '$data_fim' AND id_imovel = '$imovel'");
while($reserva = mysql_fetch_array($sql1, MYSQL_ASSOC)) {
//defino data 1
$datas1 = explode("-",$reserva[data_inicio]);
$ano1 = $datas1[0];
$mes1 = $datas1[1];
$dia1 = $datas1[2];
echo $datas1[0]."<br>".$datas1[1]."<br>".$datas1[2]."<br>";
//defino data 2
$datas2 = explode("-",$reserva[data_fim]);
$ano2 = $datas2[0];
$mes2 = $datas2[1];
$dia2 = $datas2[2];
echo $datas2[0]."<br>".$datas2[1]."<br>".$datas2[2]."<br>";
//calculo timestamp das duas datas
$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 = mktime(0,0,0,$mes2,$dia2,$ano2);
//diminuo a uma data a outra
$segundos_diferenca = $timestamp1 - $timestamp2;
//converto segundos em dias
$dias_diferenca = $segundos_diferenca / (60 60 24);
//obtenho o valor absoluto dos dias (tiro o possível sinal negativo)
$dias_diferenca = abs($dias_diferenca);
//tiro os decimais aos dias de diferenca
$dias_diferenca = floor($dias_diferenca);
echo $dias_diferenca."<br>";
//O RESULTADO DESTE FOR É DUVIDOSO... RSRSRS SOBRE ELE ESTOU COM DÚVIDA
for($t = 0; $t <= $dias_diferenca; $t++) { $dias_reservas[$t] = array_push($dias_reservas, $dia1+$t); }
}
O resultado do for acima é:
Array ( [0] => 7 [1] => 8 [2] => 9 [3] => 4 [4] => 9 [5] => 10 [6] => 12 [7] => 13 [8] => 14 )
Está desordenado e com datas que não estão no banco, alguém poderia me ajudar?
Carregando comentários...