Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de PHP
SEÇÕES
Manuais relacionados
+Workshop de PHP
Categorias
+Scripts em PHP

Índice do Manual Workshop de PHP
+ Gestão de ficheiros através de PHP
+ Upload de ficheiros com PHP
+ Verificar a existência de uma URL
+ Leitura sequencial de ficheiros com PHP
+ Escritura em ficheiros com PHP
+ Gestão de directórios com PHP
+ Função que escreve um campo select com valores de uma base de dados
+ Receber o último ID de uma inserção com PHP e MySQL
+ Recolher dados de um Select Multiple com PHP
+ Enviar e-mails pelo PHP
+ Validar um endereço email em PHP
+ Loop para receber todas as variáveis por POST em PHP
+ Enviar um formulário por mail com PHP
+ Paginação de resultados com PHP e MySQL
+ Usuários ativos com PHP
+ Listas de elementos com cores alternas em PHP
+ Programas de livre distribuição em PHP
+ phpMyAdmin
+ Formatação de uma cadeia
+ Cálculo dos dias de um mês em PHP
+ Contador simples para páginas PHP
+ Avaliações dos usuários em PHP
+ Rastrear os robôs de buscadores
+ Recomendar um site usando PHP
+ Criação de um log de erros
+ Comprimir página PHP
+ Contador PHP com imagens
+ Editor PHP Maguma Studio
+ SiteMaps de Google em PHP
+ Teste de velocidade de conexão à Internet
+ Mostrar Conteúdo de acordo com o país em PHP
+ Conteúdos em banco de dados com PHP
+ Problemas com as datas em timestamp Unix de PHP
+ Contar o número de linhas e caracteres em arquivo PHP
+ Transformação Doc, Odt ou Rtf para PDF
+ Preencher um arquivo RTF e gerar o PDF
+ Converter arquivos ods ou xls para pdf
+ PHP isam, ferramenta Web para Arquivos Planos
+ Undefined variable ou Undefined index
+ Agregar carinhas ao sistema
+ Paginator, script para paginação com PHP e MySQL
+ Executar scripts PHP automaticamente através do cron com CURL
+ Uso do FTP com PHP
+ Instalação de One or Zero PHP Helpdesk
+ Portal PHP Nuke
+ Gerando feed RSS de notícias em PHP
+ Blasten blt-SEARCH 1.0.5
+ Classes e Objetos em PHP
+ Recuperando a qualidade de uma imagem JPEG
+ Comprovar se existe o domínio do correio
+ Tutorial de BBCode
+ Função em PHP para o cálculo de minutos transcorridos em duas horas dadas
+ Criação de gráficos em PHP com JpGraph
+ Gerar documentos de Word RTF com PHP
+ Introdução ao Symfony
+ Arredondar decimais em PHP
+ Envio de boletins a e-mails de um banco de dados MySQL
+ Htaccess e páginas dinâmicas
+ Criando imagens com PHP
+ Programar um buscador com PHP e MySQL
+ Loop para receber todos os dados de uma fila de um recordset com PHP

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Função em PHP para o cálculo de minutos transcorridos em duas horas dadas

Função que nos permite averiguar as horas ou minutos entre dois tempos dados de um mesmo dia.


Trata-se de uma função que nos permite obter o total de Minutos ou Horas transcorridas entre dois Tempos de um mesmo dia.

Algo como:
Hora 1= 13:56
Hora 2=18:07
A função Imprime: Transcorreram 04:11 Horas.

O processo é muito simples, vejamos o código fonte:

<? function calcular_tempo_trasnc($hora1,$hora2){
    $separar[1]=explode(':',$hora1);
    $separar[2]=explode(':',$hora2);

$total_minutos_trasncorridos[1] = ($separar[1][0]*60)+$separar[1][1];
$total_minutos_trasncorridos[2] = ($separar[2][0]*60)+$separar[2][1];
$total_minutos_trasncorridos = $total_minutos_trasncorridos[1]-$total_minutos_trasncorridos[2];
if($total_minutos_trasncorridos<=59) return($total_minutos_trasncorridos.' Minutos');
elseif($total_minutos_trasncorridos>59){
$HORA_TRANSCORRIDA = round($total_minutos_trasncorridos/60);
if($HORA_TRANSCORRIDA<=9) $HORA_TRANSCORRIDA='0'.$HORA_TRANSCORRIDA;
$MINUTOS_TRANSCORRIDOS = $total_minutos_trasncorridos%60;
if($MINUTOS_TRANSCORRIDOS<=9) $MINUTOS_TRANSCORRIDOS='0'.$MINUTOS_TRANSCORRIDOS;
return ($HORA_TRANSCORRIDA.':'.$MINUTOS_TRANSCORRIDOS.' Horas');

} }
//chamamos a função e imprimimos
echo calcular_tempo_trasnc(date('H:i'),'16:12');
?>


Explicando:

Primeiro, definiremos uma função para não repetir o mesmo código em todas as partes onde o utilizaremos, De nome calcular_tempo_trasnc($hora1,$hora2);

Onde: $hora1 é a hora maior desde onde se calculará; no exemplo anterior seria 18:07, E $hora2 é o ponto desde onde se calculará as horas e minutos transcorridos.

Cabe destacar que ambas horas devem estar no seguinte formato: ( H: i) .
Como já sabemos "H" é a hora de 00 a 23 e "i", os minutos de 00 a 59 parâmetros definidos para a função date();

Logo, atribuímos valor às matrizes $separar[1] e $separar[2] respectivamente com o resultado devolvido pela função explode(); encarregada de separar uma cadeia a partir de um valor, neste caso será : (dois pontos) devolvendo uma nova matriz com duas partes, onde:

$separar[1][0] <= É a hora de $hora1. Se o valor de $hora1 for igual a (11:15), então $separar[1][0] é igual a "11";
E $separar[1][1] <= Os minutos de $hora 1, igual a 15.

Onde o primeiro [1], é o Key ou a chave de $separar, e correspondente à $hora1, se fosse 2, seria a $hora2. E até ali porque só estão definidos 2 parâmetros.

Passaremos os valores de $separar[1][0] e $separar[2][0] respectivamente de horas a minutos ( Multiplicando esse valor por 60 ) que são os minutos de uma hora.

$separar[1][0]*60

Para logo somar os minutos devolvidos por $separar[1][1] e $separar[2][1] respectivamente, Deste modo obtemos o valor global dos minutos transcorridos em ambas horas. Os resultados os agruparemos em $total_minutos_trasncorridos[1] e $total_minutos_trasncorridos[2].

O passo seguinte é atribuir-lhe o valor da diferença entre $total_minutos_trasncorridos[1] e $total_minutos_trasncorridos[2] à variável $total_minutos_trasncorridos.

Já temos a diferença em Minutos de ambos cortes de horas. Agora devemos lhe dar formato legível e entendível.

Iniciamos uma condição onde dizemos: Se $total_minutos_trasncorridos for menor ou igual a 59( if($total_minutos_trasncorridos<=59)) quer dizer que ainda não transcorreu 1 hora , portanto retornamos (return($total_minutos_trasncorridos.' Minutos')), que não é mais que a mensagem que devolverá toda a função quando se chame.

Do contrário se (elseif($total_minutos_trasncorridos>59)) $total_minutos_trasncorridos for maior que 59, então se transcorreu pelo menos 1 hora e executamos as seguintes instruções:
Levaremos os minutos a horas, dividindo por 60 (minutos de uma hora) e arredondamos o valor com round(); Já temos a Hora, porém nos falta os minutos.

Para os minutos ($MINUTOS_TRANSCOrRIDOS), obteremos o resíduo da divisão entre $total_minutos_trasncorridos e 60 (minutos de uma hora).

$MINUTOS_TRANSCORRIDOS=$total_minutos_trasncorridos%60

Já temos os valores desejados.
Agora indicaremos se o valor de $HORA_TRANSCORRIDA ou $MINUTOS_TRANSCORRIDOS é menor ou igual que 9, para colocar-lhe um zero à esquerda. Por exemplo: se $MINUTOS_TRANSCORRIDOS for igual a 9, então a condição avalia TRUE e lhe coloca o 0 ao começo, devolvendo 09.

O mesmo processo o repetimos com $HORA_TRANSCORRIDA.

Finalmente retornamos o resultado:
return ($HORA_TRANSCORRIDA.':'.$MINUTOS_TRANSCORRIDOS.' Horas');

Cabe destacar que podem adaptar-lhe umas instruções para que quando os minutos forem iguais a 1 diga (Minuto) e não (Minutos), assim como com as horas.

Para chamar a função: calcular_tempo_trasnc(date('H:i'),'16:12');
Onde date('H:i'),é a hora atual do servidor e 16:12 desde onde se começa a contar.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de PHP

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Scripts em PHP


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites