Ir ao conteúdo
  • Cadastre-se

PHP Dificuldade em exibir a chegada prevista em um sistema de consulta de horários


Posts recomendados

Olá,

Estou enfrentando um problema ao exibir a chegada prevista em um sistema de consulta de horários em PHP. O sistema permite que os usuários selecionem uma seção de origem e uma seção de destino, e com base nessa seleção, o sistema consulta o banco de dados para obter os horários de viagem correspondentes.

Meu banco de dados é o MySQL, e aqui estão as informações relevantes sobre a estrutura das tabelas que estou usando:

Tabela "viagens":

Colunas: id (chave primária), horario_saida, poltronas_livres, preco, tipo, linha, rota, empresa, ocupacao Tabela "tempo_de_viagem":

Colunas: id (chave primária), secao_origem_codigo, secao_destino_codigo, duracao_minutos Tabela "secoes":

Colunas: id (chave primária), codigo, nome_secao Eu segui as instruções fornecidas em alguns tutoriais e tentei implementar a exibição da chegada prevista adicionando o código necessário. No entanto, a chegada prevista não está sendo exibida corretamente. Em vez disso, está sendo exibido o horário de saída como a chegada prevista para todas as viagens.

Eu verifiquei o código e parece que a consulta ao banco de dados para obter a duração da viagem está correta. No entanto, algo não está funcionando corretamente ao calcular a chegada prevista com base no horário de saída e na duração.

Exemplo: minha saída 06 horas e o tempo de viagem é de 1h40min quero que na cheda prevista mostra 07h40mim

// Consulta para buscar os horários de saída das viagens
    $sql = "SELECT * FROM viagens";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
      while ($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td><input type='radio' name='horario' value='" . $row["id"] . "'></td>";
        echo "<td>" . date('H:i', strtotime($row["horario_saida"])) . "</td>";



            // Consulta para buscar a duração da viagem na tabela tempo_de_viagem
        $secaoOrigem = $_POST['estou_em'];
        $secaoDestino = $_POST['indo_para'];


        $sql_tempo = "SELECT duracao_minutos FROM tempo_de_viagem WHERE secao_origem_codigo = '$secaoOrigem' AND secao_destino_codigo = '$secaoDestino'";
        $result_tempo = $conn->query($sql_tempo);

            $duracao_minutos = 0; // Inicializa a variável $duracao_minutos

            if ($result_tempo !== false && $result_tempo->num_rows > 0) {
              $row_tempo = $result_tempo->fetch_assoc();
              $duracao_minutos = $row_tempo["duracao_minutos"];

    // Formatar a duração utilizando a função formatarDuracao()
              $duracao_formatada = formatarDuracao($duracao_minutos);

    // Calcular a chegada prevista com base na hora de saída e duração
              $horario_saida = strtotime($row["horario_saida"]);
              $chegada_prevista = date('H:i', strtotime("+{$duracao_minutos} minutes", $horario_saida));

              echo "<td>" . date('H:i', $horario_saida) . "</td>";
              echo "<td>" . $chegada_prevista . "</td>";
              echo "<td>" . $duracao_formatada . "</td>";
            } else {
              $chegada_prevista = "N/A";

              echo "<td>" . date('H:i', strtotime($row["horario_saida"])) . "</td>";
              echo "<td>" . $chegada_prevista . "</td>";
              //echo "<td>N/A</td>";
            }

Aqui está o trecho de código relevante que estou usando para exibir os horários de viagem e calcular a chegada prevista

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Parece que o problema está na forma como a chegada prevista está sendo calculada


 

    // Calcular a chegada prevista com base na hora de saída e duração
    $horario_saida = strtotime($row["horario_saida"]); // Converte o horário de saída para timestamp
    $duracao_minutos = $row_tempo["duracao_minutos"]; // Duração da viagem em minutos

    // Calcula a chegada prevista em formato timestamp
    $chegada_prevista_timestamp = strtotime("+{$duracao_minutos} minutes", $horario_saida);

    // Formata a chegada prevista no formato 'H:i'
    $chegada_prevista = date('H:i', $chegada_prevista_timestamp);

    // Exibe a chegada prevista
    echo "<td>" . date('H:i', $horario_saida) . "</td>";
    echo "<td>" . $chegada_prevista . "</td>";
    echo "<td>" . $duracao_formatada . "</td>";

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!