Dominar PHP Date(): formatear la fecha y la hora como un profesional

17 de noviembre de 2025

PHP’s date() La función es una de las herramientas más poderosas y utilizadas para manejar el formato de fecha y hora en aplicaciones web. Ya sea que estés creando un blog, una plataforma de comercio electrónico o un tablero de control, es esencial mostrar las fechas de una manera fácil de entender para el usuario. En esta guía completa,
vamos a profundizar en el
date() función, explorar su sintaxis, los especificadores de formato, ejemplos prácticos, las mejores prácticas y los errores más comunes.

¿Qué es la función Date() de PHP?

El date() La función en PHP formatea una fecha y hora locales de acuerdo con una cadena de formato especificada. Devuelve una cadena que representa la fecha y hora formateadas.

Sintaxis básica

PHP

cadena fecha(cadena $formato, ?entero $marca de tiempo = nulo)

  • Formato $: Una cadena que contiene especificadores de formato (por ejemplo, Y, metro, d).
  • $marca de tiempo: Marca de tiempo de Unix opcional. Si se omite, se utiliza la hora actual.

Nota: A partir de PHP 8.0, el segundo parámetro es nulo (?int).

Especificadores clave de formato de fecha en PHP

A continuación se presenta una tabla de referencia rápida con los caracteres de formato más utilizados:

EspecificadorDescripciónEjemplo de salida
YAño de 4 dígitos2026
yAño de 2 dígitos25
metroMes (01–12)11
nMes sin ceros iniciales (1–12)11
FNombre completo del mesNoviembre
MNombre abreviado del mes (3 letras)Nov.
dDía del mes con ceros a la izquierda17
jDía sin ceros iniciales17
lNombre completo de los días laborablesLunes
DDía laborable corto (3 letras)Lun
HFormato de 24 horas (00–23)11
hFormato de 12 horas (01–12)11
iMinutos con ceros a la izquierda37
sSegundos con ceros iniciales45
AMayúsculas AM/PMAM
a«am/pm» en minúsculasa. m.
TAbreviatura de la zona horariaIST
cFormato ISO 860117 de noviembre de 2026 a las 11:37:45 +05:30
rFormato RFC 2822
Lunes, 17 de noviembre de 2026, 11:37:45
+0530

Ejemplos básicos del formato de fecha en PHP

1. Fecha y hora actuales

PHP

echo fecha(‘A-m-d H:i:s’); 

// Salida: 17 de noviembre de 2026, 11:37:45
2. Formato legible para los humanos

PHP

echo fecha(‘l, F j, Y \a\t g:i A’); 

// Salida: lunes, 17 de noviembre de 2026 a las 11:37 a. m.

Utilice \ para escapar caracteres como en para que aparezcan tal cual.

3. Fecha corta

PHP

echo date('d/m/Y'); 

// Fecha de salida: 17/11/2026
4. Solo hora

PHP

echo date('h:i A'); 

// Salida: 11:37 a. m.

Trabajar con marcas de tiempo

Puedes dar formato a cualquier marca de tiempo de Unix:

PHP

$timestamp = strtotime('2026-01-01 00:00:00');

echo date('Y-m-d', $timestamp);

// Salida: 01-01-2026
Combínalo con strtotime()

PHP

echo date('F j, Y', strtotime('+7 días'));

// Fecha de salida: 24 de noviembre de 2026

Manejo de zonas horarias (¡Crítico!)

De manera predeterminada, date() utiliza la zona horaria predeterminada del servidor. Configúrala siempre de manera explícita:

PHP

date_default_timezone_set('Asia/Kolkata'); // IST

echo date('A-m-d H:i:s T');

// Salida: 17 de noviembre de 2026, 11:37:45 IST

Mejores prácticas: Configura la zona horaria al principio de tu archivo de configuración o punto de entrada.

Casos de uso reales del formato de fecha en PHP

1. Fechas de las entradas del blog

PHP

$post_date = '2026-11-10 14:30:00';

echo date('M j, Y', strtotime($post_date));

// Salida: 10 de noviembre de 2026
2. Tiempo relativo (“hace 2 horas”)

PHP

función timeAgo($timestamp) {

    $diff = time() - $timestamp;

    if ($diff < 60) return "hace $diff segundos";

    if ($diff < 3600) return round($diff/60) . " minutos atrás";

    if ($diff < 86400) return round($diff/3600) . " horas atrás";

    return date('M j', $timestamp);

}

echo timeAgo(strtotime('2026-11-17 09:00:00'));

// Publicado: hace 2 horas
3. Cuenta regresiva del evento

PHP

$event = strtotime('2026-12-25 00:00:00');

$now = time();

$días_restantes = floor(($evento - $ahora) / 86400);

echo "¡Faltan $days_left días para Navidad!";

// Salida: ¡Faltan 38 días para Navidad!

Errores comunes y cómo evitarlos

TemaSolución
Zona horaria incorrectaUtiliza siempre date_default_timezone_set()
Errores similares a los del efecto 2000 con yPrefiero Y para todo el año
Confusión con los ceros inicialesUtilice j en lugar de d si no quieres ceros
Problemas relacionados con la configuración regionalUtilice setlocale() + strftime() para nombres localizados
¿Quedará obsoleto en el futuro?¡No! Pero piensa en esto: Fecha y hora para operaciones complejas

Consejos de expertos

1. Usar Fecha y hora para necesidades avanzadas

2. php

$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));

3. echo $dt->format('A-m-d H:i:s');

4. Almacenar en caché las fechas con formato
Evita llamar date() en bucles para mejorar el rendimiento.

5. Validar las marcas de tiempo de entrada

6. PHP

if ($timestamp === false) {

    $timestamp = time();

7. }

8. Internacionalización

9. PHP

setlocale(LC_TIME, 'hi_IN');

10. echo strftime('%e %B %Y'); // Fecha en hindi

Extra: Formatos de fecha en una sola línea

PHP
// ISO
date('c');

// Formato de EE. UU.
date('m/d/Y h:i A');

// Formato de la UE
date('d.m.Y H:i');

Conclusión

Masterización date() se trata de entender su especificadores de formato, manejo de zonas horarias, y integración con strtotime(). Mientras que Fecha y hora ofrece mayor potencia para situaciones complejas, date() sigue siendo ligero, rápido y perfecto para 90% de casos de uso. Carmatec, un liderazgo empresa de desarrollo PHP, aprovecha estas ventajas para ofrecer una funcionalidad basada en el tiempo limpia, eficiente y confiable.