Trabalhando com datas e horas em PHP: funções e exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
```html

Introdução: por que saber trabalhar com datas e horas em PHP



Trabalhar com datas e horas é uma das tarefas essenciais no desenvolvimento web. Seja para registrar ações do usuário, calcular idade, criar calendários, processar timestamps do banco de dados ou gerenciar prazos de assinatura — não é possível prescindir de ferramentas confiáveis para lidar com datas. O PHP oferece aos desenvolvedores um conjunto poderoso e flexível de funções e classes para esses fins.



Neste artigo, vamos detalhar as principais formas de trabalhar com datas e horas em PHP: desde funções simples como date() e time() até a abordagem orientada a objetos com a classe DateTime. Você aprenderá a formatar datas, calcular a diferença entre elas, trabalhar com fusos horários e evitar erros comuns.



Funções principais: date(), time() e mktime()



A maneira mais simples de obter a data ou hora atual em PHP é usar a função date(). Ela aceita uma string de formato e, opcionalmente, um timestamp. Se o timestamp não for passado, o horário atual é usado.



<?php// Data atual no formato "Ano-Mês-Dia"echo date('Y-m-d'); // Saída: 2025-04-10

// Hora atual no formato "Horas:Minutos:Segundos"echo date('H:i:s'); // Saída: 14:35:20

// Data e hora completasecho date('Y-m-d H:i:s'); // Saída: 2025-04-10 14:35:20?>


Função time()

time() retorna o timestamp Unix atual (o número de segundos desde 1º de janeiro de 1970). Isso é útil para cálculos e comparações.



<?php$now = time();echo $now; // Saída: 1744277720 (número muda a cada segundo)

// Data daqui a 7 dias$nextWeek = time() + (7 * 24 * 60 * 60);echo date('Y-m-d', $nextWeek); // Saída: 2025-04-17?>


Função mktime()

mktime() permite criar um timestamp para uma data e hora específicas. É útil quando você precisa obter um timestamp para parâmetros definidos.



<?php// Cria um timestamp para 25 de dezembro de 2025, às 10:00:00$christmas = mktime(10, 0, 0, 12, 25, 2025);echo date('Y-m-d H:i:s', $christmas); // Saída: 2025-12-25 10:00:00?>


Formatação de datas: símbolos principais

Na tabela abaixo estão os símbolos de formatação mais usados para a função date():

  • d — dia do mês (01–31)
  • m — número do mês (01–12)
  • Y — ano no formato de 4 dígitos (2025)
  • H — horas no formato 24h (00–23)
  • i — minutos (00–59)
  • s — segundos (00–59)
  • l — nome completo do dia da semana (Monday)
  • F — nome completo do mês (April)


Abordagem orientada a objetos: classe DateTime

A partir do PHP 5.2, é recomendado usar a classe DateTime para trabalhar com datas. Ela oferece muito mais recursos e uma interface intuitiva.



Criação de um objeto DateTime

<?php// Data e hora atuais$date = new DateTime();echo $date->format('Y-m-d H:i:s'); // Saída: 2025-04-10 14:35:20

// Data específica$birthday = new DateTime('1990-07-15');echo $birthday->format('d.m.Y'); // Saída: 15.07.1990

// Com formato relativo$nextMonth = new DateTime('+1 month');echo $nextMonth->format('Y-m-d'); // Saída: 2025-05-10?>


Modificação de datas

O método modify() permite alterar facilmente a data usando strings relativas.



<?php$date = new DateTime('2025-04-10');$date->modify('+10 days');echo $date->format('Y-m-d'); // Saída: 2025-04-20

$date->modify('first day of next month');echo $date->format('Y-m-d'); // Saída: 2025-05-01?>


Dif

```

Blogs

Book Recommendations