W3docs

gmdate()

Aprende la función gmdate() de PHP: formatea una fecha y hora UTC/GMT, su sintaxis, parámetros, caracteres de formato comunes y ejemplos ejecutables.

Introducción

La función gmdate() formatea un timestamp de Unix como una cadena de fecha y hora legible en GMT/UTC, ignorando la zona horaria configurada en el servidor. Es la contraparte exclusiva para UTC de date(): ambas usan los mismos caracteres de formato, pero gmdate() siempre devuelve la hora en Hora del Meridiano de Greenwich. Esto la convierte en la herramienta adecuada cuando se necesita un valor independiente de la zona horaria — registrar un evento, construir una cabecera HTTP o almacenar un timestamp normalizado que todos los servidores y clientes interpreten de la misma manera.

Esta guía cubre la sintaxis, los parámetros, los caracteres de formato más comunes, las diferencias entre gmdate() y date(), y varios ejemplos ejecutables.

Sintaxis

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

Parámetros

  • $format (obligatorio) — Una cadena de caracteres de formato que se reemplazan con los valores correspondientes de fecha y hora. Cualquier carácter no reconocido como especificador de formato se imprime tal cual. Para imprimir una letra literal que de otro modo sería interpretada, escápela con una barra inversa (por ejemplo, \T).
  • $timestamp (opcional) — Un timestamp de Unix (segundos transcurridos desde el 1 de enero de 1970, 00:00:00 UTC). Cuando se omite o es null, se usa la hora actual.

La función devuelve la fecha y hora formateada como una cadena, siempre expresada en UTC independientemente de date_default_timezone_set() o la configuración date.timezone del servidor.

Caracteres de formato comunes

Estos son los especificadores que usará con más frecuencia. Son idénticos a los utilizados por date().

CarácterSignificadoEjemplo
YAño con 4 dígitos2026
mMes, 2 dígitos con cero inicial06
dDía del mes, 2 dígitos04
HHora, formato de 24 horas (00–23)05
iMinutos (00–59)45
sSegundos (00–59)57
DDía de la semana, texto cortoSun
MMes, texto cortoMar
TAbreviatura de la zona horariaGMT
USegundos desde el epoch de Unix1646372757

Ejemplos

Ejemplo 1: Imprimir la fecha y hora actual en GMT/UTC

Sin argumento de timestamp, gmdate() formatea el momento actual en UTC.

php— editable, runs on the server

Ejemplo 2: Formatear la fecha y hora con especificadores personalizados

Un patrón común es construir un timestamp legible al estilo RFC. Como gmdate() es UTC, el especificador T siempre imprime GMT.

php— editable, runs on the server

Ejemplo 3: Formatear un timestamp específico

Pase un timestamp de Unix como segundo argumento para formatear un punto fijo en el tiempo en lugar de "ahora".

php— editable, runs on the server

gmdate() vs date()

date() formatea un timestamp usando la zona horaria local configurada para el script, mientras que gmdate() siempre formatea en UTC. Con el mismo timestamp, ambas devuelven la misma cadena solo cuando la zona horaria local es 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() cuando el valor deba ser independiente de la zona horaria (registros, cabeceras HTTP Date, respuestas de API, almacenamiento en base de datos). Use date() cuando esté mostrando una hora a un usuario en su zona local.

Cuándo usar gmdate()

  • Registro estandarizado — almacene timestamps en UTC para que las entradas de servidores en diferentes regiones sean comparables.
  • Cabeceras HTTP y caché — cabeceras como Expires y Last-Modified deben expresarse en GMT.
  • APIs e intercambio de datos — devuelva UTC para que los clientes puedan convertir a cualquier zona local de manera confiable.

Para el manejo de fechas orientado a objetos con conversión explícita de zonas horarias, se prefieren las clases DateTime y DateTimeZone. Para construir los timestamps que se pasan a gmdate(), consulte gmmktime() (UTC) y mktime() (hora local).

Conclusión

La función gmdate() proporciona una manera sencilla de formatear fechas y horas en UTC, utilizando los mismos caracteres de formato que date() pero siempre anclada a GMT. Esta guía cubrió su sintaxis, parámetros, los caracteres de formato más comunes, la diferencia con date(), y ejemplos prácticos para ayudarle a integrarla en sus proyectos. Para más información sobre el trabajo con fechas en PHP, consulte la descripción general de Fecha y Hora en PHP.

Práctica

Práctica
¿Cuál es el propósito de la función gmdate() en PHP?
¿Cuál es el propósito de la función gmdate() en PHP?
Was this page helpful?