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

Calculo de horas úteis


F4b1nh0

Pergunta

beleza galera?

Estou usando aqui na empresa o PHP antigo (5.2). Existe alguma forma de calcular a diferença de horas úteis entre 2 datas?

Ex. Preciso verificar se a diferença dessas 2 datas ( data inicial vem do banco e data final é a hora atual ) é maior que 12 horas úteis ( 09:00 até 18:00 ).

Meu código até agora:

$date1 = str_replace("/","-",$row["Data_CriacAo"]);
$date2 = str_replace("/","-",mktime(date("H")-3, date("i"), date("s"), date("m"), date("d"), date("Y")));

//converte para timestamp.
$date1Timestamp = strtotime($date1);
$date2Timestamp = $date2;

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
<?php
date_default_timezone_set('America/Sao_Paulo');
$date1 = preg_replace('/([\d]{2})\/([\d]{2})\/([\d]{4})/', '$3-$2-$1', $row["Data_CriacAo"]); // Supondo que $row["Data_CriacAo"] tem uma data no formato Brasil dd/mm/YYYY
$date2 = date('Y-m-d H:i:s'); //data atual
$horas = 0;
while($date1 < $date2) {
  $date1 = date('Y-m-d H:i:s', strtotime('+1 hour', strtotime($date1)));
  if (date('H', strtotime($date1)) > 8 and date('H', strtotime($date1)) < 19) { // Filtra as horas comerciais
  	if (date('N', strtotime($date1)) < 6) { // Filtra os dias comerciais (seg a sex)
      $horas++;
    }
  }
}
echo 'Se passaram '.$horas.' Horas';

 

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...