Como definir Data e Hora no PHP

Definir data e hora no PHP é uma tarefa comum no desenvolvimento de aplicações web. Seja para registrar acessos, criar logs, mostrar a data atual em um site ou manipular horários em sistemas mais complexos, o PHP oferece diversas funções e classes para trabalhar com datas e horários de forma simples e eficiente. Neste artigo, você vai aprender como definir data e hora no PHP, configurar o fuso horário corretamente, exibir datas formatadas e utilizar recursos mais avançados da linguagem.

Por que é importante configurar a data e hora no PHP?

Quando um servidor executa scripts em PHP, ele utiliza um fuso horário padrão definido na configuração do servidor. Se esse fuso horário não estiver correto, podem ocorrer problemas como:

  • Horários errados em registros de banco de dados
  • Logs com data incorreta
  • Eventos programados executando no horário errado
  • Diferença entre horário do servidor e horário do usuário

Por isso, configurar corretamente a data e hora no PHP é essencial para qualquer aplicação.

Veja também: Como criar formulário de contato com PHP

Como definir o fuso horário no PHP

Antes de trabalhar com datas, é recomendável definir o timezone (fuso horário) utilizando a função date_default_timezone_set().

Exemplo de código

<?php
date_default_timezone_set('America/Sao_Paulo');
?>

Neste exemplo, o PHP passa a utilizar o horário oficial do Brasil (São Paulo) como referência para todas as funções de data.

Você pode colocar essa linha no início do seu script ou no arquivo de configuração principal do seu projeto.

Como exibir a data e hora atual no PHP

Para mostrar a data e hora atual, a função mais utilizada é date().

Exemplo simples

<?php
date_default_timezone_set('America/Sao_Paulo');

echo date("d/m/Y H:i:s");
?>

Saída

07/03/2026 14:30:15

Neste exemplo:

  • d = dia
  • m = mês
  • Y = ano
  • H = hora (24 horas)
  • i = minutos
  • s = segundos

Principais formatos de data no PHP

A função date() permite definir vários formatos de exibição.

Exemplo

echo date("d/m/Y");

Resultado: 07/03/2026

Exibir apenas hora

echo date("H:i:s");

Resultado: 14:30:15

Data por extenso

echo date("d-m-Y");

Resultado: 07-03-2026

Veja também: Como criar enquete com PHP

Como definir uma data específica no PHP

Às vezes é necessário trabalhar com datas específicas, não apenas com a data atual.

Para isso, você pode utilizar a função strtotime().

Exemplo

$data = strtotime("2026-12-25");
echo date("d/m/Y", $data);

Resultado: 25/12/2026

Trabalhando com datas usando a classe DateTime

O PHP também oferece a classe DateTime, que é uma forma mais moderna e poderosa de manipular datas.

<?php
date_default_timezone_set('America/Sao_Paulo');$data = new DateTime();echo $data->format('d/m/Y H:i:s');
?>

Exemplo

A classe DateTime permite:

  • Somar ou subtrair dias
  • Comparar datas
  • Trabalhar com intervalos de tempo
  • Converter fusos horários

Como somar dias a uma data no PHP

Usando DateTime, é fácil adicionar dias a uma data.

Exemplo

$data = new DateTime();
$data->modify('+7 days');echo $data->format('d/m/Y');

Resultado: 14/03/2026

Isso é muito útil para:

  • sistemas de vencimento
  • prazos
  • agendamentos
  • assinaturas

Como salvar data e hora no banco de dados

Ao armazenar datas no banco de dados, o formato recomendado é: YYYY-MM-DD HH:MM:SS

Exemplo de geração desse formato no PHP:

$data = date("Y-m-d H:i:s");echo $data;

Resultado: 2026-03-07 14:30:15

Esse formato é compatível com MySQL, PostgreSQL e outros bancos de dados.

Veja também: Como usar sessões para manipular variáveis em PHP

Lista de fusos horários comuns no PHP

Alguns fusos horários frequentemente utilizados:

America/Sao_Paulo
America/New_York
Europe/London
Asia/Tokyo
UTC

Para ver a lista completa:

print_r(timezone_identifiers_list());

Boas práticas ao trabalhar com data e hora no PHP

Para evitar problemas em seus projetos, siga algumas boas práticas:

✔ Sempre defina o fuso horário com date_default_timezone_set()
✔ Utilize a classe DateTime para projetos mais complexos
✔ Salve datas no banco no formato Y-m-d H:i:s
✔ Evite depender do horário padrão do servidor

Outros exemplos:

Para mostrar o total de segundos, deste 1º de janeiro de 1970 até a data atual, utilizamos a função time():

echo time(); //Mostra 1589244560 (se a data fosse 11/05/2020)

Para conveter uma data qualquer para o formato timestamp (um instante único, um ponto específico na linha do tempo e seu valor corresponde a uma determinada quantidade de tempo decorrida a partir de um instante inicial):

echo strtotime("2020-05-11"); //Mostra 1589166000 (se a data fosse 11/05/2020)

Para converter um timestamp em data:

 $st = strtotime("2020-05-11");
 echo date("l, d/m/y", $st); //Mostra Monday, 11/05/20  (se a data fosse 11/05/2020)
 echo date("now"); //Mostra Monday, 11/05/20  (se a data fosse 11/05/2020)
 
 //Mostra a data atual: Monday, 11/05/20  (se a data fosse 11/05/2020)
 $st = strtotime("now");
 echo date("l, d/m/y", $st);
 
 //Mostra a data de amanhã: Tuesday, 12/05/20  (se a data de hoje fosse 11/05/2020)
 $st = strtotime("+1 day");
 echo date("l, d/m/y", $st);
 
 //Mostra a data de uma semana a diante: Monday, 18/05/20  (se a data de hoje fosse 11/05/2020)
 $st = strtotime("+1 week");
 echo date("l, d/m/y", $st);
 
 //obs.: o argumento "l" mostra o dia da semana
 //ver mais em https://www.php.net/manual/pt_BR/function.date.php

A função setlocale especifica o tipo de localidade desejada para realizar operações de uma categoria.

O primeiro parâmetro representa a categoria de operações:

LC_ALL – para especificar a localidade para todas as categorias.
LC_COLLATE – para especificar as regras da localidade para comparação de textos.
LC_CTYPE – para especificar as regras da localidade para classificação/conversão de caracteres.
LC_MESSAGES – para especificar o idioma das mensagens de log.
LC_MONETARY – para especificar a notação monetária de uma localidade.
LC_NUMERIC – para especificar a notação numérica de uma localidade.
LC_TIME – para especificar a notação de data/tempo de uma localidade.

Para mais detalhes, acesse https://www.php.net/manual/en/function.strftime.php.

 //Parâmetros da função - configuração para português
 setlocale(LC_ALL, "pt_BR", "pt_BR.utf-8", "portuguese");
 
 echo strftime("%A %B"); //Mostra "Terça-Feira, Maio" caso a data seja 12/05/2020

Podemos também utilizar a classe DateTime para manipular datas:

  //Cria-se uma instância da classe (objeto $dt)  
  $dt = new DateTime();
  
  //Para acessarmos os métodos da classe DateTime, utilizamos "->":
  echo $dt->format("d/m/Y H:i:s");//Acessamos o método format()
  
  //Acima será mostrado o padrão "12/05/2020 21:52:21" 

Para acrescentarmos, por exemplo, quinze dias a uma data específica:

 $dt = new DateTime();
 $periodo = new DateInterval("P15D"); //Criamos a variável $periodo para armazenar o acréscimo (15 dias "P15D")
 $dt->add($periodo); //Somamos o acréscimo (15 dias) a data atual $dt
 echo $dt->format("d/m/Y H:i:s"); //Mostra a data com o acréscimo

Variáveis em PHP

Conclusão

Saber como definir data e hora no PHP é fundamental para qualquer desenvolvedor que trabalha com aplicações web. Com funções simples como date() e recursos mais avançados como a classe DateTime, é possível manipular datas com grande flexibilidade.

Configurando corretamente o fuso horário, formatando datas adequadamente e utilizando boas práticas, você garante que seu sistema funcione corretamente independentemente do servidor ou da localização dos usuários.

Gostou das nossas dicas sobre como definir Data e Hora no PHP? Deixem nos comentários! Para mais dicas, acesse os nossos canais no YouTube:
https://www.youtube.com/@canalpcsemerro
https://www.youtube.com/@criandobits

Tags:

O COMPUTADOR ESTÁ LENTO, TRAVANDO, DANDO "TELA AZUL" E DOR DE CABEÇA?

Especialize-se em montagem, diagnósticos de defeitos e upgrades com aulas passo a passo sem enrolação.

Torne-se também um técnico diferenciado e ganhe dinheiro prestando suporte ou conquiste o emprego dos seus sonhos com este curso completo de Montagem e Manutenção de Desktops e Notebooks.

Clique na imagem abaixo e confira mais detalhes do curso:

Super Técnico 2.0

CLIQUE AQUI E SAIBA MAIS

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação e apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *