W3docs

gmstrftime()

¿Qué es la función gmstrftime() en PHP? Es una herramienta para formatear fecha y hora en la zona horaria UTC/GMT, ya eliminada en PHP 8.2.

¿Qué es la función gmstrftime() en PHP?

La función gmstrftime() formateaba una fecha y hora como cadena en la zona horaria UTC/GMT, usando especificadores % al estilo de strftime() cuyo texto podía localizarse mediante la configuración regional actual (establecida con setlocale()). Se comportaba exactamente como strftime() excepto que la salida siempre era GMT en lugar de la hora local del servidor.

Importante: gmstrftime() fue declarada obsoleta en PHP 8.1 y eliminada en PHP 8.2. Ya no existe en PHP moderno, por lo que el código nuevo debe utilizar un reemplazo. El resto de esta página explica la función a modo de referencia y muestra los equivalentes que se deben usar hoy: gmdate() para formatos fijos e IntlDateFormatter para salida con reconocimiento de configuración regional.

Esta página cubre la firma original y los especificadores de formato, el reemplazo moderno con gmdate(), cómo mapear los especificadores % antiguos a los nuevos caracteres de formato, y cómo obtener nombres de mes y día traducidos a la configuración regional de forma correcta.

Sintaxis

string gmstrftime(string $format, ?int $timestamp = null)
  • $format — una cadena de especificadores % que describe la salida deseada.
  • $timestamp — una marca de tiempo Unix opcional. Si se omite, se usa la hora actual.

Especificadores comunes que aceptaba: %Y (año de 4 dígitos), %m (mes, 0112), %d (día, 0131), %H (hora en formato 24h, 0023), %M (minuto), %S (segundo), %B (nombre completo del mes), %A (nombre completo del día de la semana).

El reemplazo moderno: gmdate()

Dado que gmstrftime() ya no existe, el reemplazo directo para formatos fijos de estilo máquina es gmdate(). También produce salida UTC, pero usa caracteres de formato al estilo de date() (sin %):

php— editable, runs on the server

Esto genera la fecha y hora UTC actuales como YYYY-MM-DD HH:MM:SS, por ejemplo 2026-06-21 08:04:38.

Mapeo de especificadores antiguos a gmdate()

Significadogmstrftime()gmdate()
Año de 4 dígitos%YY
Mes (0112)%mm
Día (0131)%dd
Hora (0023)%HH
Minuto%Mi
Segundo%Ss
Nombre completo del mes%BF
Nombre completo del día de la semana%Al

Así, gmstrftime("%A, %d %B %Y") se convierte en gmdate("l, d F Y").

Formateo UTC con reconocimiento de configuración regional

Lo que gmdate() no hace es traducir los nombres de meses y días de la semana a la configuración regional actual — gmdate() siempre devuelve nombres en inglés. Si dependías de gmstrftime() con setlocale() para obtener salida traducida (por ejemplo, nombres de meses en francés), usa IntlDateFormatter de la extensión intl en su lugar:

<?php
$formatter = new IntlDateFormatter(
    'fr_FR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::NONE,
    'UTC'
);
echo $formatter->format(time());
?>

Esto imprime la fecha completa con nombres de mes y día de la semana en francés, en UTC — el equivalente moderno y seguro del antiguo patrón setlocale() + gmstrftime().

Por qué importa el formateo en UTC

Formatear en UTC (lo que hacían gmstrftime() y ahora gmdate()) es útil siempre que se almacenen o comparen marcas de tiempo independientemente de la zona horaria del usuario. El registro de eventos, las respuestas de API, los valores de base de datos y la planificación entre regiones se benefician de una referencia única y sin ambigüedades. La conversión a una zona horaria local se realiza solo en el momento de la visualización — típicamente con las clases DateTime / DateTimeZone.

Conclusión

gmstrftime() proporcionaba una manera rápida de formatear la fecha y hora UTC con especificadores al estilo de strftime(), pero ha sido eliminada en PHP 8.2. Para formatos fijos, reemplázala con gmdate() y traduce los especificadores usando la tabla anterior; para nombres de meses y días traducidos según la configuración regional, usa IntlDateFormatter. Para explorar funciones relacionadas, consulta strftime(), gmmktime() y la guía general de fecha y hora en PHP.

Práctica

Práctica
¿Qué hace la función gmstrftime() en PHP?
¿Qué hace la función gmstrftime() en PHP?
Was this page helpful?