Atualizado em 28 de Março de 2014

Como Calcular Hora com PHP

Olá pessoal,

Em muitas linguagens de programação fazer cálculos com horas é um problema, porém no PHP Calcular Hora é muito simples.

Neste post vamos ver como Somar e diminuir hora com apenas um comando.
Imagine a seguinte situação: "Você esta desenvolvendo um sistema onde ele deve mostrar os horários de atendimento sendo que cada atendimento e de 30 min, começando às 9h e terminando o expediente as 18h".

Para fazer este cálculo use o script abaixo:

<?php
$hora = '10:00:00';

// Soma 30 Minutos
echo date('H:i:s', strtotime('+30 minute', strtotime($hora)));

echo '<br />';

// Diminui 30 Minutos
echo date('H:i:s', strtotime('-30 minute', strtotime($hora)));
?>

É isso ai pessoal.


"Esta dica te ajudou de alguma forma?" Então ajude outras pessoas compartilhando este conteúdo com seus amigos! =)


Até a próxima.

Tags:  Comandos PHP | PHP

Comentários

Sua foto do perfil

Alex Xavier

Mauricio, meus parabens pelo post como sempre me salvando , comprei um curso seu e quero novamente parabeniza-lo pelo seu trabalho de formar e orientar profissionais em php , porém gostaria da sua ajuda no que tange o looping , para poder adicionar 30 minuitos em cada hora.

Desde ja agradeço sua atenção e colaboração

Atc,

30 de Outubro de 2015 - 10:54

Sua foto do perfil

Mauricio Programador

Olá Alex,

Não consegui identificar muito bem a sua pergunta, mas no caso se você so quer fazer um laço de repetição para adicionar de 30 em 30 minutos, basta usar um laço de repetição como o for por exemplo.

Ficaria mais ou menos assim:

for($i = 0; $i < 5; $i++)
{
// Soma 30 Minutos
echo $hora = date('H:i:s', strtotime('+30 minute', strtotime($hora)));
}

Se não for isso poste novamente.

Abraço.

30 de Outubro de 2015 - 15:00

Sua foto do perfil

Melany

Valeu Mauricio pela ideia to fazendo tcc do curso ai tinha esza duvida

23 de Outubro de 2015 - 18:42

Sua foto do perfil

Mélany

Obrigada Mauricio, era exatamente o que precisava... estou fazendo uma agenda de salão de beleza, mas agora não sei como vou fazer queria mostrar só os horarios disponiveis para os clientes escolherem, so que cada serviço leva um tempo diferente.

23 de Outubro de 2015 - 09:02

Sua foto do perfil

Mauricio Programador

Olá Mélany,

Legal que ajudou. Uma dica para o que você quer fazer e cadastrar cada serviço no banco de dados com o tempo que o serviço leva.

Dai e so usar a mesma soma para poder mostrar na tela.

Abraço.

23 de Outubro de 2015 - 14:28

Sua foto do perfil

Fernando

Excelente amigo, salvou o dia aqui.
Obrigado!

21 de Outubro de 2015 - 11:00

Sua foto do perfil

Anderson

Dae Maurício, o básico como sempre nos ajudando. Como você disse ali "sendo que cada atendimento é de 30 min, começando às 9h e terminando o expediente as 18h" mas como vai fazer ele listar do 09:00:00 até o 18:00:00 de 30 em 30 minutos?

11 de Agosto de 2015 - 14:53

Sua foto do perfil

Mauricio Programador

Olá Anderson,

Obrigado.

Se for fazer no SQL basta usar o comando BETWEEN, agora se precisa apenas que ele vá mostrando de 30 em 30 use um laço de repetição, ou seja, um FOR.

Abraço.

17 de Agosto de 2015 - 10:20

Sua foto do perfil

MAURICIO CAMPOS DE MENEZES

Olá Mauricio. Parabéns pelo post. Precisamos de coisas simples na web.
Gostaria de contar com a sua ajuda para o seguinte.
No ACCESS desenvolvi um controle e quero colocá-lo na web para ser preenchido pelo usuário. Numa "input text" tenho a seguinte fórmula que gostaria de converter para PHP ou outra linguagem, mas meus conhecimentos são limitados:
Private Sub HORA_Inicio_AfterUpdate()
With HORA_Inicio
Me!HORA_Final = Me![HORA_Inicio] + 1 / 24
Me.Refresh
End With
Me.Refresh
End Sub

Desde Já grato pela ajuda.

14 de Maio de 2015 - 10:45

Sua foto do perfil

Mauricio Programador

Olá Mauricio,

Para pegar o valor de um input basta usar o $_POST com o nome do campo que deseja pegar o valor passado pelo usuário, depois e so fazer o calculo como vocês faz em seu código.

Casso queria aprender mais sobre PHP conheça nossos cursos para aprimorar seus conhecimentos, alguns são gratuitos.

Link: Portal Aprendendo PHP

Abraço.

18 de Maio de 2015 - 08:50

Sua foto do perfil

Eduardo Felipe

Olá Mauricio!
Estou com o seguinte problema, tenho dois horários e gostaria de subitrair os dois e exibir, exemplo:
(horaio B)1802 (18:02= seis horas e dois minutos)
-
(horaio A)1722 (17:22= cinco horas e vinte e dois minutos)
= 1 hora e 20 minutos.
Abraço!

01 de Dezembro de 2014 - 19:39

Sua foto do perfil

Mauricio Programador

Olá Eduardo,

Vou criar um post para você amanha (03/12/2014) sobre como fazer isso dai ja fica de consulta pra todos os leitores.

Abraço.

02 de Dezembro de 2014 - 13:02

Sua foto do perfil

Adriano

Bom dia Maurício,

Sou novo em programação e estou com um problema referente a horas, eu preciso imprimir uma a imagem a cada 30 minutos, porém, tem que ser do horário decorrente, existe alguma maneira de fazer isso com o PHP ? esse exemplo demonstrado é muito bom mais para o meu problema não é viável.

24 de Outubro de 2014 - 12:30

Sua foto do perfil

Mauricio Programador

Olá Adriano,

Para este tipo de operação você vai ter que usar o javascript.

O Javascript irá controlar o tempo de 30 em 30 minutos ele irá chamar a sua função PHP que executa o que você deseja.

O js seria mais ou menos assim:

var contador = 1800;

function conta()
{
if(contador != 0)
{
contador = contador-1;
setTimeout("conta()", 30000);
}
else
{
contador = 1800;
//CHAMA A FUNÇÃO QUE DESEJAR
}
}


Abraço.

27 de Outubro de 2014 - 08:58

Sua foto do perfil

Willams

Valew Maurício postagem boa funciona!!!

25 de Junho de 2014 - 14:37

Sua foto do perfil

MARCELO BRANCO

Muito legal o seu poste. Parabéns!!! Sou seu fã.

16 de Abril de 2014 - 19:53

NEWSLETTER

Receba dicas de programação
em seu e-mail

TWITTER

Acompanhe tudo o que rola
com Mauricio Programador

NEWSLETTER