W3docs

gmdate()

Aprenda a função PHP gmdate(): formatar datas e horas em UTC/GMT, sintaxe, parâmetros, caracteres de formato e exemplos práticos.

Introdução

A função gmdate() formata um timestamp Unix como uma string de data e hora legível em GMT/UTC, ignorando o fuso horário configurado no servidor. É o equivalente exclusivamente UTC de date(): ambas utilizam os mesmos caracteres de formato, mas gmdate() sempre retorna o horário em Greenwich Mean Time. Isso a torna a ferramenta ideal sempre que você precisa de um valor independente de fuso horário — para registrar um evento em log, construir um cabeçalho HTTP ou armazenar um timestamp normalizado que todos os servidores e clientes interpretem da mesma forma.

Este guia aborda a sintaxe, os parâmetros, os caracteres de formato mais comuns, como gmdate() difere de date() e vários exemplos executáveis.

Sintaxe

gmdate(string $format, ?int $timestamp = null): string

Parâmetros

  • $format (obrigatório) — Uma string de caracteres de formato que são substituídos pelos valores correspondentes de data/hora. Qualquer caractere não reconhecido como especificador de formato é impresso como está. Para exibir uma letra literal que de outra forma seria interpretada, use uma barra invertida como escape (por exemplo, \T).
  • $timestamp (opcional) — Um timestamp Unix (segundos decorridos desde 1º de janeiro de 1970, 00:00:00 UTC). Quando omitido ou null, o horário atual é utilizado.

A função retorna a data/hora formatada como uma string, sempre expressa em UTC independentemente de date_default_timezone_set() ou da configuração date.timezone do servidor.

Caracteres de formato comuns

Estes são os especificadores mais utilizados. Eles são idênticos aos usados por date().

CaractereSignificadoExemplo
YAno com 4 dígitos2026
mMês, 2 dígitos com zero à esquerda06
dDia do mês, 2 dígitos04
HHora, formato 24 horas (00–23)05
iMinutos (00–59)45
sSegundos (00–59)57
DDia da semana, texto abreviadoSun
MMês, texto abreviadoMar
TAbreviação do fuso horárioGMT
USegundos desde o epoch Unix1646372757

Exemplos

Exemplo 1: Exibir a data e hora atuais em GMT/UTC

Sem argumento de timestamp, gmdate() formata o momento atual em UTC.

php— editable, runs on the server

Exemplo 2: Formatar a data e hora com especificadores personalizados

Um padrão comum é construir um timestamp legível no estilo RFC. Como gmdate() é UTC, o especificador T sempre imprime GMT.

php— editable, runs on the server

Exemplo 3: Formatar um timestamp específico

Passe um timestamp Unix como segundo argumento para formatar um ponto fixo no tempo em vez do "agora".

php— editable, runs on the server

gmdate() vs date()

date() formata um timestamp usando o fuso horário local configurado para o script, enquanto gmdate() sempre formata em UTC. Dado o mesmo timestamp, as duas retornam a mesma string apenas quando o fuso horário local é UTC.

<?php

date_default_timezone_set('America/New_York');
$timestamp = 1646372757;

echo date('Y-m-d H:i:s', $timestamp);   // 2022-03-04 00:45:57 (local, UTC-5)
echo "\n";
echo gmdate('Y-m-d H:i:s', $timestamp); // 2022-03-04 05:45:57 (UTC)

Use gmdate() quando o valor precisa ser independente de fuso horário (logs, cabeçalhos HTTP Date, respostas de API, armazenamento em banco de dados). Use date() quando estiver exibindo um horário para o usuário em seu fuso local.

Quando usar gmdate()

  • Registro padronizado — armazene timestamps em UTC para que entradas de servidores em diferentes regiões permaneçam comparáveis.
  • Cabeçalhos HTTP e cache — cabeçalhos como Expires e Last-Modified devem ser expressos em GMT.
  • APIs e troca de dados — retorne UTC para que os clientes possam converter para qualquer fuso local de forma confiável.

Para tratamento orientado a objetos de datas com conversão explícita de fuso horário, prefira as classes DateTime e DateTimeZone. Para construir os timestamps passados a gmdate(), consulte gmmktime() (UTC) e mktime() (horário local).

Conclusão

A função gmdate() oferece uma maneira direta de formatar datas e horas em UTC, usando os mesmos caracteres de formato de date(), mas sempre ancorada ao GMT. Este guia abordou sua sintaxe, parâmetros, os caracteres de formato mais comuns, a diferença em relação a date() e exemplos práticos para ajudá-lo a integrá-la em seus projetos. Para mais informações sobre como trabalhar com datas em PHP, consulte a visão geral de Data e Hora em PHP.

Prática

Prática
Qual é o propósito da função gmdate() em PHP?
Qual é o propósito da função gmdate() em PHP?
Was this page helpful?