Playground de Moment.js
Entorno interactivo para experimentar con la API de fecha y hora de Moment.js: formatear, analizar y manipular fechas con salida en tiempo real
Entrada
Salida
Leerme
¿Qué es Moment.js?
Moment.js es una biblioteca de JavaScript muy utilizada para analizar, validar, manipular y formatear fechas. Antes de que surgieran alternativas modernas, Moment.js era el estándar de facto para el manejo de fechas en aplicaciones JavaScript. Proporciona una API limpia y encadenable que hace que trabajar con fechas sea intuitivo y directo. Aunque existen bibliotecas más nuevas como date-fns y Luxon, Moment.js sigue siendo ampliamente usado en bases de código heredadas y aún se mantiene activamente para correcciones de errores. Comprender Moment.js es esencial para los desarrolladores que trabajan con proyectos existentes que dependen de ella.
¿Por qué usar una biblioteca de manipulación de fechas?
El objeto nativo Date de JavaScript es notoriamente difícil de manejar. Tiene un comportamiento inconsistente entre navegadores, un índice de meses confuso (0‑11 en lugar de 1‑12), opciones de formato limitadas y no incluye soporte de zona horaria. Bibliotecas de fechas como Moment.js resuelven estos problemas al ofrecer una API consistente y bien documentada. Gestionan casos extremos como transiciones de horario de verano, años bisiestos y formatos específicos de locale automáticamente, evitando que los desarrolladores tengan que escribir lógica de fechas propensa a errores desde cero.
Descripción de la herramienta
Moment.js Playground es un entorno interactivo basado en el navegador para experimentar con la biblioteca Moment.js. Escribe y ejecuta código JavaScript directamente en el editor con acceso completo a Moment.js y Moment Timezone. El playground ejecuta automáticamente tu código a medida que escribes (con debouncing) y muestra toda la salida de la consola en un panel estilo terminal debajo. Es perfecto para aprender Moment.js, probar cadenas de formato de fechas, depurar cálculos de fechas y crear prototipos de lógica relacionada con el tiempo sin configurar un entorno de desarrollo.
Ejemplos
Formatear la fecha actual:
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// Output: December 30th, 2025
console.log(now.format("dddd, h:mm A"));
// Output: Monday, 3:45 PMAnalizar diferentes formatos de fecha:
const date1 = moment("2025-12-25", "YYYY-MM-DD");
const date2 = moment("25/12/2025", "DD/MM/YYYY");
const date3 = moment("Dec 25, 2025", "MMM D, YYYY");
console.log(date1.format("dddd")); // Thursday
console.log(date2.isValid()); // true
console.log(date3.month()); // 11 (0-indexed)Calcular tiempo relativo:
const past = moment().subtract(3, "days");
const future = moment().add(2, "weeks");
console.log(past.fromNow()); // 3 days ago
console.log(future.fromNow()); // in 14 days
console.log(past.from(future)); // 17 days agoAritmética de fechas:
const date = moment("2025-01-15");
const nextMonth = date.clone().add(1, "month");
const lastWeek = date.clone().subtract(1, "week");
const endOfMonth = date.clone().endOf("month");
console.log(nextMonth.format("YYYY-MM-DD")); // 2025-02-15
console.log(lastWeek.format("YYYY-MM-DD")); // 2025-01-08
console.log(endOfMonth.format("YYYY-MM-DD")); // 2025-01-31Trabajar con duraciones:
const start = moment("2025-01-01");
const end = moment("2025-12-31");
const duration = moment.duration(end.diff(start));
console.log(duration.asDays() + " days"); // 364 days
console.log(duration.asWeeks() + " weeks"); // 52 weeks
console.log(duration.humanize()); // a yearComparar fechas:
const date1 = moment("2025-06-15");
const date2 = moment("2025-12-25");
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2, "year")); // true
console.log(date1.isBetween("2025-01-01", "2025-08-01")); // trueTrabajar con zonas horarias:
const now = moment();
console.log(now.tz("America/New_York").format("h:mm A z"));
console.log(now.tz("Europe/London").format("h:mm A z"));
console.log(now.tz("Asia/Tokyo").format("h:mm A z"));Características
- Biblioteca completa de Moment.js: Acceso a todas las funciones de Moment.js, incluyendo análisis, formato, manipulación y comparación
- Soporte de zona horaria: Moment Timezone está pre‑cargado para trabajar con zonas horarias en todo el mundo
- Ejecución de código en vivo: El código se ejecuta automáticamente mientras escribes, con debouncing inteligente
- Terminal integrado: Visualiza la salida de la consola al instante sin abrir las herramientas de desarrollo del navegador
- Resaltado de sintaxis: Resaltado de sintaxis JavaScript para mejorar la legibilidad del código
- Manejo de errores: Los errores en tiempo de ejecución se muestran claramente en la salida del terminal
Casos de uso
- Aprender Moment.js: Experimenta con la API y observa los resultados inmediatamente sin configurar un proyecto
- Pruebas de cadenas de formato: Prueba diferentes tokens de formato para obtener la salida de fecha exacta que necesitas
- Depuración de cálculos de fechas: Prueba aritmética de fechas compleja antes de implementarla en tu aplicación
- Conversiones de zona horaria: Convierte rápidamente horas entre distintas zonas horarias
- Mantenimiento de código heredado: Prueba fragmentos de código Moment.js al mantener aplicaciones existentes
Tokens de formato comunes
| Token | Descripción | Ejemplo |
|---|---|---|
YYYY |
Año de 4 dígitos | 2025 |
YY |
Año de 2 dígitos | 25 |
MM |
Mes de 2 dígitos | 01‑12 |
MMM |
Nombre corto del mes | Jan, Feb |
MMMM |
Nombre completo del mes | January |
DD |
Día de 2 dígitos | 01‑31 |
Do |
Día con ordinal | 1st, 2nd, 3rd |
dddd |
Nombre completo del día de la semana | Monday |
ddd |
Nombre corto del día | Mon |
HH |
Hora en formato 24 h | 00‑23 |
hh |
Hora en formato 12 h | 01‑12 |
mm |
Minutos | 00‑59 |
ss |
Segundos | 00‑59 |
A |
AM/PM (mayúsculas) | AM, PM |
a |
am/pm (minúsculas) | am, pm |
z |
Abreviatura de zona horaria | EST, PST |
Z |
Desplazamiento de zona horaria | +05:00 |
Referencia de métodos comunes
| Método | Descripción | Ejemplo |
|---|---|---|
moment() |
Crear momento actual | moment() |
format(string) |
Formatear a cadena | moment().format("YYYY-MM-DD") |
add(n, unit) |
Añadir tiempo | moment().add(7, "days") |
subtract(n, unit) |
Restar tiempo | moment().subtract(1, "month") |
startOf(unit) |
Inicio de la unidad | moment().startOf("week") |
endOf(unit) |
Fin de la unidad | moment().endOf("month") |
fromNow() |
Tiempo relativo | moment("2025-01-01").fromNow() |
diff(moment) |
Diferencia | momentA.diff(momentB, "days") |
isBefore(moment) |
Es anterior | momentA.isBefore(momentB) |
isAfter(moment) |
Es posterior | momentA.isAfter(momentB) |
isSame(moment, unit) |
Es igual | momentA.isSame(momentB, "month") |
isValid() |
Verificar validez | moment("invalid").isValid() |
clone() |
Crear copia | moment().clone() |
tz(zone) |
Convertir zona horaria | moment().tz("America/New_York") |
Unidades de tiempo
Moment.js admite estas unidades de tiempo para operaciones add, subtract, startOf, endOf y diff:
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms