Fragmentos de timestamp Unix en PHP
Ejemplos de PHP para obtener segundos Unix, generar milisegundos, formatear timestamps, convertir entre objetos DateTime y parsear cadenas de fecha.
time()round(microtime(true) * 1000)date("Y-m-d H:i:s", 1700000000)date_default_timezone_set("America/New_York");
date("Y-m-d H:i:s", 1700000000);
// Or with DateTime:
$dt = new DateTime();
$dt->setTimestamp(1700000000);
$dt->setTimezone(new DateTimeZone("America/New_York"));
echo $dt->format("Y-m-d H:i:s");strtotime("2023-11-15 06:13:20 UTC")Conceptos básicos de marcas de tiempo en PHP
El time() de PHP devuelve segundos Unix enteros. Usa microtime(true) cuando necesites precisión por debajo del segundo o quieras derivar milisegundos Unix para API orientadas a JavaScript.
Formatear fechas en PHP
date() formatea marcas de tiempo en la zona horaria predeterminada del servidor, mientras que gmdate() formatea en UTC. Para trabajo explícito con zonas horarias, usa DateTime con DateTimeZone para que los despliegues se comporten de forma consistente.
Notas de producción para PHP
Las aplicaciones PHP suelen ejecutarse en hosting compartido, contenedores o workers con zonas horarias predeterminadas distintas. Trata el valor predeterminado del servidor como un detalle de implementación. Almacena segundos Unix o valores DateTime UTC en los datos persistentes, y luego elige una DateTimeZone en el punto donde se formatea la marca de tiempo para un usuario, informe o integración.
- Usa time() para segundos Unix enteros en controladores, trabajos y scripts simples
- Usa microtime(true) cuando necesites fracciones de segundo o precisión de milisegundos
- Usa gmdate() para un formateo UTC estable que ignore la zona horaria del servidor
- Usa DateTimeImmutable para código que no deba mutar una fecha por accidente
FAQ
- ¿time() incluye milisegundos?
- No. time() devuelve segundos Unix enteros. Usa microtime(true) si necesitas fracciones de segundo o si necesitas calcular una marca de tiempo en milisegundos.
- ¿Por qué usar gmdate() en lugar de date()?
- gmdate() formatea la marca de tiempo en UTC. date() usa la zona horaria configurada del servidor, que puede cambiar entre el desarrollo local, los contenedores y el alojamiento de producción.
- ¿Cómo compruebo una conversión en PHP?
- Convierte el mismo valor con gmdate('c', $timestamp), luego compáralo con un conversor de epoch independiente o una función UTC de base de datos antes de usarlo en una migración.