Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

charles786

Cálculo entre dadas

Recommended Posts

Bom dia amigos, estou ha um tempão tentando calcular datas vindas do banco e outras vindas do formulário, se alguém puder me ajudar serei muito grato...Já consegui pegar as sequencias de datas vindas tanto do formulário quanto do banco de dados Mysql. Só não consigo verificar entre elas qual as datas repetidas. Estou fazendo um programa para um hotel e preciso que o dono consulte se há vagas disponíveis. Abaixo segue o código:

 

<?php
include("conecta.php");
$id_hospedagem = $_POST["hospedagem"];
$data_entrada1=$_POST["data_entrada"];
$data_entrada2=explode("/", $data_entrada1);
$data_entrada= $data_entrada2[2]."-".$data_entrada2[1]."-".$data_entrada2[0];
$data_saida1=$_POST["data_saida"];
$data_saida2=explode("/", $data_saida1);
$data_saida= $data_saida2[2]."-".$data_saida2[1]."-".$data_saida2[0];
$hospedagem_tipo=explode("-",$hospedagem);
$id_hospedegem = $hospedagem_tipo[0];
$tipo_hospedegem = $hospedagem_tipo[1];
$valor_hospedegem = $hospedagem_tipo[2];
// CALENDÁRIO para pegar todas as datas do início ao final para fazer a comparação
$banco_datas_form = mysql_query("SELECT * FROM periodi2013 WHERE datainizio BETWEEN '$data_entrada' AND '$data_saida'");
// pega os índices do CALENDÁRIO para pegar todas as datas do início ao final para fazer a comparação
$banco_datas = mysql_query("SELECT * FROM prenota2013 WHERE id_hospedagem='$id_hospedagem'");
while($row2 = mysql_fetch_array($banco_datas))
{
$iddatainizio = $row2["iddatainizio"];
$iddatafine = $row2["iddatafine"]+1;
/////////////////////////////////// Pega as datas do banco...são várias sequencias de datas de entrada e saida
$banco_recebe = mysql_query("SELECT * FROM periodi2013 WHERE idperiodi BETWEEN '$iddatainizio' AND '$iddatafine'");
while($row3 = mysql_fetch_array($banco_recebe))
{
$row2_form = mysql_fetch_array($banco_datas_form);
//////////////////////////////////// resultado das datas do formulário
$periodo = $row2_form["datainizio"];
$iddatainizio3 = $row3["datainizio"];
$iddatafine3 = $row3["datafine"];
for ($counter = $iddatainizio3; $counter <= $iddatafine3; $counter += 1)
{
////////////////////////////////////// resultado das data vinda do banco
echo $counter ."<br>";
NÃO CONSIGO VERIFICAR SE OS DIAS SÃO REPETIDOS
////////////////////////////////////// resultado da data vinda do formuário
echo $periodo ."<br>";
}
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja tentou a função strtotime()?

 

$dataEntrada = "13-10-2013"; //Data de entrada de um cliente
$tempoEstadia = 10; // O cliente fica 10 dias
 
 
$saida = strtotime("+$tempoEstadia days",strtotime($dataEntrada)); // Data de saida do cliente no formato numeros
$saida = date('d/m/Y', $saida); // Data de saida do cliente no formato Data

Depois é comparar a data de entrada de um novo hospede com a de saída do antigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já peguei a diferença entre as datas do banco e do form...transformei tudo em array mas não estou conseguindo fazer a consulta .

Tipo if (){

 

Olha o código:

 

 

foreach($dateRange_form as $k => $v){
//verifica se um indice do array de datas do formulário está contido no array de datas do banco. Se sim, coloca o resultado em um novo array
if(in_array($v, $dateRange_db)){
$newDate[] = $v;
}
}
//exibindo o novo array de datas, as que estão correlacionadas
if(in_array("",$newDate)){
echo "aqui";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.