W3docs

getdate()

Aprenda a função PHP getdate(): sintaxe, parâmetros, o array associativo retornado e exemplos práticos para trabalhar com datas e timestamps.

Introdução

A função PHP getdate() divide uma data em suas partes individuais — ano, mês, dia, hora, nome do dia da semana e mais — e as retorna como um array associativo. Por padrão, ela descreve o horário local atual, mas você pode passar qualquer timestamp Unix para descrever um momento diferente.

Um timestamp Unix é um inteiro que conta o número de segundos desde 1 de janeiro de 1970, 00:00:00 UTC (a "época Unix"). Funções como time(), mktime() e strtotime() produzem esses timestamps, e getdate() transforma um deles em uma representação legível.

Esta página aborda a sintaxe, cada chave do array retornado, exemplos executáveis e como getdate() se compara à classe moderna DateTime.

Sintaxe e Parâmetros

A sintaxe do getdate() é a seguinte:

getdate(int $timestamp = time()): array

O único parâmetro opcional $timestamp é o timestamp Unix a descrever. Se omitido, getdate() usa time() por padrão — o momento atual. O resultado reflete o fuso horário configurado (consulte date_default_timezone_set() ou a configuração date.timezone no php.ini), então defina seu fuso horário se precisar de resultados consistentes entre servidores.

Valor de Retorno

getdate() retorna um array associativo descrevendo o timestamp fornecido. Veja a descrição de cada chave:

ChaveValor
"seconds"Segundos (0-59)
"minutes"Minutos (0-59)
"hours"Horas (0-23)
"mday"Dia do Mês (1-31)
"wday"Dia da Semana (0-6, 0=Domingo)
"mon"Mês (1-12)
"year"Ano (ex.: 2023)
"yday"Dia do Ano (0-365)
"weekday"Nome completo do dia da semana (ex.: "Monday")
"month"Nome completo do mês (ex.: "January")
"0"Timestamp Unix (segundos desde 1 Jan 1970)
"zone"Deslocamento do fuso horário em segundos em relação ao GMT

Nota: a chave "0" (o timestamp bruto) é um inteiro; as demais também são inteiros, exceto "weekday" e "month", que são strings. A chave "is_dst" foi descontinuada no PHP 7.0 e removida no PHP 8.0.

Uso e Exemplos

Formatando a data atual

Chame getdate(), armazene o resultado e leia as chaves que precisar:

php— editable, runs on the server

Isso produz algo como: Today is Thursday, March 3, 2023.

Descrevendo um timestamp específico

Passe um timestamp Unix para descrever um momento diferente do atual. Aqui usamos um timestamp fixo para que a saída seja reproduzível:

<?php

// 2021-12-25 00:00:00 UTC
$date = getdate(1640390400);

echo $date['weekday'] . ", " . $date['mday'] . " " . $date['month'] . " " . $date['year'] . PHP_EOL;
echo "Day " . $date['yday'] . " of the year, hour " . $date['hours'] . PHP_EOL;

Assumindo um fuso horário UTC, isso imprime:

Saturday, 25 December 2021
Day 358 of the year, hour 0

Construindo um timestamp primeiro e depois desmembrando-o

getdate() se combina naturalmente com mktime(), que constrói um timestamp a partir de partes individuais:

<?php

// mktime(hour, minute, second, month, day, year)
$timestamp = mktime(9, 30, 0, 7, 4, 2024);
$parts = getdate($timestamp);

echo "{$parts['weekday']} at {$parts['hours']}:{$parts['minutes']}";

Isso imprime Thursday at 9:30.

getdate() vs. a classe DateTime

getdate() é conveniente para leituras rápidas e pontuais, mas para qualquer coisa envolvendo aritmética, comparação ou fusos horários, a classe orientada a objetos DateTime é a escolha moderna:

  • DateTime lida com cálculos de datas (->add(), ->sub(), ->diff()) de forma segura em limites de mês e ano.
  • Ela carrega um fuso horário explícito, evitando surpresas do padrão global.
  • Ela formata a saída com date-format em vez de concatenação manual de strings.

Use getdate() quando precisar apenas de alguns campos de um timestamp; use DateTime quando precisar manipular ou comparar datas.

Conclusão

getdate() transforma um timestamp Unix em um array associativo rotulado, tornando-se uma maneira rápida de extrair o ano, o mês, o dia da semana ou qualquer outro componente de uma data. Para exibição e consultas simples é ideal; para aritmética de datas e lógica com fusos horários, prefira a classe DateTime.

Prática

Prática
O que a função PHP getdate() faz?
O que a função PHP getdate() faz?
Was this page helpful?