Formato de fecha en JavaScript: generador y ejemplos

Formato de fecha en JavaScript

Formato de fecha en JavaScript: generador Intl.DateTimeFormat y ejemplos | We.Inc

Formatea fechas en JavaScript sin librerías: un generador de Intl.DateTimeFormat en vivo, código para YYYY-MM-DD y MM/DD/YYYY, zonas horarias, tiempo relativo, rangos y las trampas de parseo que causan errores de un día.

Para formatear una fecha en JavaScript, usa Intl.DateTimeFormat o toLocaleDateString con un locale y opciones, por ejemplo date.toLocaleDateString("en-US", { dateStyle: "long" }) para March 5, 2026. Usa toISOString() para las APIs, la opción timeZone para mostrar otra zona e Intl.RelativeTimeFormat para frases como hace 3 días.

Respuestas rápidas

Elige un locale y opciones en el generador y copia el código que escribe; la vista previa la formatea tu propio navegador. Debajo, una tabla de formatos habituales y ejemplos ejecutables para zonas horarias, tiempo relativo y rangos.

Preguntas frecuentes

¿Cómo formateo una fecha como YYYY-MM-DD en JavaScript?

Usa el año local, el mes más uno y el día, rellenados con padStart(2, "0"), y únelos con guiones. toISOString().slice(0, 10) también da esa forma, pero en UTC, así que puede mostrar el día equivocado cerca de la medianoche.

¿Por qué mi fecha tiene un día de diferencia?

new Date("2026-03-05") se interpreta como medianoche UTC. Al oeste de Greenwich, ese momento todavía es el día 4 en hora local. Parsea con una hora ("2026-03-05T00:00") o con new Date(2026, 2, 5) para obtener la medianoche local.

¿Sigo necesitando Moment.js?

No para formatear. Intl cubre locales, zonas horarias y tiempo relativo en todos los navegadores modernos. Los propios mantenedores de Moment lo describen como un proyecto heredado; para cálculos con fechas, funciona bien una librería pequeña como date-fns o la API Temporal más reciente (donde esté disponible).

¿Cómo muestro una hora en una zona horaria concreta?

Pasa timeZone con un nombre IANA, por ejemplo { timeZone: "America/New_York", timeStyle: "short" }. El objeto Date sigue siendo el mismo instante; solo cambia cómo se escribe.

Fechas en el sitio web de un negocio

Formatos habituales

Formatos habituales y el código de cada uno

Ejemplos ejecutables

Parsear fechas de forma segura

Una cadena ISO solo con fecha se interpreta como medianoche UTC, pero una cadena de fecha y hora sin desfase se interpreta como hora local. Esa diferencia causa la mayoría de los errores de un día.

YYYY-MM-DD sin librerías

Constrúyelo a partir de las partes locales con padStart. El truco del locale en-CA da el mismo resultado, pero depende de que el formato de ese locale no cambie.

El mismo momento en varias zonas horarias

timeZone acepta un nombre IANA. El Date en sí no tiene zona; solo cambia el formato. Ten en cuenta que timeZoneName no se puede combinar con dateStyle ni timeStyle.

Tiempo relativo (hace 3 días, dentro de 2 horas)

Intl.RelativeTimeFormat escribe las palabras; tú eliges la unidad. Este helper elige la unidad más grande que encaja.

Rangos de fechas

formatRange elimina las partes repetidas, así que una reserva del 5 al 9 del mismo mes se lee de forma natural.

Diseños personalizados con formatToParts

Cuando ningún estilo predefinido encaja, toma las piezas localizadas y ordénalas tú, por ejemplo para mostrar el día más grande que el mes.

¿Trabajas con segundos epoch? Usa el

conversor de timestamp Unix

Opciones de Intl.DateTimeFormat usadas en el generador

(ninguna)

(tu zona)

Error: {msg}

Generador de Intl.DateTimeFormat

Fecha y hora

Locale

Zona horaria

Modo

Estilos predefinidos

Elegir cada parte

Copiar código

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio