2 enero, 2026
Convertir tiempo a cadena en PHP - time() y date() explicados con ejemplos

Introducción

En PHP, las funciones de fecha y hora son esenciales para generar marcas de tiempo, registrar eventos, calcular diferencias o mostrar fechas legibles.
Una de las tareas más comunes es convertir el resultado de time() (un número entero en segundos) a una cadena de texto con formato de fecha y hora, como "2025-11-21 09:30:00" o "21 de noviembre de 2025, 9:30 a.m.".

Esta guía te muestra cómo hacerlo correctamente, con ejemplos prácticos, diferencias entre time(), date(), strftime() y DateTime.


🧠 Qué es time() en PHP

La función time() devuelve el timestamp Unix actual: el número de segundos desde el 1 de enero de 1970 (UTC).

echo time();

👉 Ejemplo de salida:

1732188600

Esto no es legible por humanos, por lo que necesitamos convertirlo con funciones de formato.


🧩 Convertir time() a cadena con date()

La forma más directa de formatear un timestamp es usando date(formato, timestamp).

$ahora = time();
echo date('Y-m-d H:i:s', $ahora);

Salida:

2025-11-21 09:30:00

Formatos más usados

CódigoSignificadoEjemplo
YAño completo2025
mMes (con 0)11
dDía (con 0)21
HHora 24h09
iMinutos30
sSegundos00
DDía corto (Mon)Fri
lDía completo (Monday)Friday

Ejemplo:

echo date('l, d/m/Y H:i:s', time());

Salida:

Friday, 21/11/2025 09:30:00

🌎 Mostrar fechas en español con setlocale() y strftime()

strftime() usa la configuración regional del sistema (locale) para mostrar el nombre del mes y del día en el idioma deseado.

setlocale(LC_TIME, 'es_ES.UTF-8', 'es_MX.UTF-8', 'Spanish_Mexico');
echo strftime('%A %e de %B de %Y, %H:%M:%S', time());

Salida:

viernes 21 de noviembre de 2025, 09:30:00

⚠️ Nota: en PHP 8.1+ strftime() está en desuso. Se recomienda IntlDateFormatter o DateTime::format() con locales.


🧮 Usando la clase DateTime

Una forma moderna y orientada a objetos:

$fecha = new DateTime();
echo $fecha->format('Y-m-d H:i:s');

También puedes pasar un timestamp:

$fecha = new DateTime('@1732188600');
$fecha->setTimezone(new DateTimeZone('America/Mexico_City'));
echo $fecha->format('d/m/Y H:i:s');

🌐 Ejemplo completo (con zona horaria)

date_default_timezone_set('America/Mexico_City');

$timestamp = time();
$fecha_corta = date('d/m/Y', $timestamp);
$fecha_larga = strftime('%A %d de %B de %Y', $timestamp);

echo "Fecha corta: $fecha_corta\n";
echo "Fecha larga: $fecha_larga\n";

Salida:

Fecha corta: 21/11/2025  
Fecha larga: viernes 21 de noviembre de 2025

💡 Tips y buenas prácticas

  1. Siempre configura la zona horaria: date_default_timezone_set('America/Mexico_City');
  2. Usa DateTime para código nuevo; date() para scripts sencillos.
  3. Evita strftime() en PHP 8.1+ (deprecado).
  4. Usa IntlDateFormatter si necesitas soporte completo de idioma y región.

✅ Conclusión

Para convertir time() a una cadena legible en PHP:

  • Usa date('Y-m-d H:i:s', time()) para formato ISO estándar.
  • Usa strftime() o IntlDateFormatter si necesitas idioma local.
  • Usa DateTime para código moderno, zonas horarias y manipulación avanzada.

Con estos métodos podrás formatear fechas correctamente, registrar eventos y mostrar información temporal precisa a tus usuarios.


author avatar
blogdecomputo.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *