Ir para conteúdo
Fórum Script Brasil
  • 0

Mutliplicar Dias por Horas


Nahor Roberto

Pergunta

Bom dia, programadores 

 

Estou com problema com um código que eu tenho em um sistema que estou desenvolvendo, esse código ele calcula o número de horas baseado na jornada de trabalho, o que acontece 

um exemplo quando eu digitar dentro do formúlario a jornada dia no meu caso e 7:20 x 3 = ele me daria 22:horas, ao meu ver ele está multiplicando somente os minutos e também quando ele utrapassa 24horas eu não soma o total de horas segue o codigo, eu sei que está faltando alguma informação no código, se alguém do forúm puder me explicar aonde está o erro. para o codigo rodar certinho. desde de já muito obrigado.

 

<div class="container">
<div class="row">
    
<form action="painel_admin.php?acao=calcular" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="create"/>

<div class="form-group col-sm-8">
<label class="titulo" for="id_produto">Horas</label>
<input type="time" class="form-control mr-2" name="time">
</div>

<div class="form-group col-sm-6">
<label class="titulo" for="id_produto">Dias</label>
<input type="number" class="form-control mr-2" name="mult">
</div>

<button class="btn btn-primary">Enviar</button>

</form>

<?php

    if (!empty($_POST["action"]) && $_POST["action"] == "create") {
        $time = $_POST["time"];
        $mult = $_POST["mult"];
    } else{
        $time = "00:00";
        $mult = "1";
    }

    // Tirei o ':s' do 'H:i:s' pois o formulario type="time" so envia 'H:i'
    $datetime = DateTime::createFromFormat('H:i',$time,new DateTimeZone('America/Sao_Paulo'));

    $minute = $datetime->format('i');
    $datetime->modify('+' . ($minute * $mult) . 'minutes');
    $datetime->modify('-' . $minute  . 'minutes');

?>

 <h3>Total de Horas:</h3><h4><?php echo $datetime->format('H:i');  ?></h4>

</div>
</div>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Eu usei o seu código e chamei de _teste.php, fiz pequenas modificações, e ele ficou assim

 

<?php
echo "<form action='_teste.php'>";
echo "<input type='time' name='hour'><br><br>";
echo "<input type='number' name='mult'>";
echo "<input type='submit' value='Confirmar'>";
echo "</form>";
$hour = $_GET['hour'] ?? null;
$mult = $_GET['mult'] ?? null;
if (empty($hour)) {;} else {
    $minutodecimal = date('i',strtotime($hour))/60 * $mult;
    $hours = date('H',strtotime($hour)) * $mult;
    $soma = $hours + $minutodecimal;
    $minutopadrao = round(($soma - intval($soma))*60,0);
    echo "Total de horas $hour x $mult = ".intval($soma).":".sprintf('%02s',$minutopadrao); }

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...