Fecha a timestamp
Convierte una fecha en una marca de tiempo.
Convertir una fecha en marca de tiempo Unix
Una fecha es ambigua mientras no digas en qué huso está. Una marca de tiempo no lo es: es un instante único contado desde 1970 en UTC. Pasar de una a otra obliga a comprometerse con un huso, y equivocarse desplaza la respuesta varias horas.
Cómo funciona
- Interpreta la fecha y hora que aportas en el huso elegido y luego cuenta los segundos desde la época Unix.
- Da el resultado en segundos y milisegundos, ya que distintos sistemas esperan unidades distintas.
- Hace explícito el huso en vez de suponer en silencio el del navegador, que es de donde nace la mayoría de errores de conversión.
marca = segundos desde 1970-01-01T00:00:00Z la misma hora de reloj en dos husos da dos marcas distintas, separadas por la diferencia de sus desfases milisegundos = segundos × 1000
Ejemplo resuelto
Las 15:00 del 20 de marzo de 2026, leídas primero como UTC y luego como hora local de Varsovia.
- 2026-03-20T15:00:00Z → 1774018800
- en milisegundos → 1774018800000
- 2026-03-20T15:00:00+01:00 (Varsovia) → 1774015200
- ambas difieren en 3.600 segundos: exactamente una hora
Misma fecha, misma lectura del reloj, dos marcas separadas por una hora. El huso no es un detalle de formato: es parte de lo que significa la fecha.
Cómo leer el resultado
- Una cadena de fecha sola como 2026-03-20 se interpreta como medianoche UTC según la especificación de ECMAScript, mientras que 2026-03-20T00:00:00 sin Z se lee como local. La diferencia es tu desfase, y por eso las entradas de solo fecha causan a menudo errores de un día.
- El tiempo Unix ignora los segundos intercalares. Cada día tiene exactamente 86.400 segundos, así que una marca no es un recuento real de segundos físicos transcurridos; para medir intervalos usa un reloj monótono.
- Comprueba si el sistema receptor quiere segundos o milisegundos. Diez dígitos son segundos y trece milisegundos; pasar uno donde se espera el otro produce una fecha en 1970 o en el año 57.000.
- Para fechas anteriores a 1970 la marca es negativa. Es válido, pero el tratamiento varía: algunas bases de datos y bibliotecas rechazan o manejan mal los valores negativos.
Preguntas frecuentes
- ¿Por qué mi fecha sale un día antes o después?
- Casi siempre por una suposición de huso sobre un valor de solo fecha. Si escribes 2026-03-20 y el sistema lo lee como medianoche UTC, cualquiera al oeste de Greenwich verá el diecinueve en local. Adjunta siempre hora y huso explícitos a una fecha que vayas a convertir.
- ¿Guardo fechas o marcas de tiempo?
- Guarda un instante en UTC siempre que lo registrado ocurriera en un momento concreto: un evento, una entrada de registro, una transacción. Guarda una fecha simple solo cuando el huso de verdad no importe, como un cumpleaños, donde el 20 de marzo significa lo mismo en todas partes.