9 julio 2026

JavaScript soluciona el problema de Date

JavaScript jubila Date: Temporal ya es la nueva forma de trabajar con fechas

Si llevas poco tiempo programando en JavaScript, probablemente todavía no hayas tenido que pelearte con el objeto Date. Si es así, enhorabuena: estás llegando justo cuando las cosas empiezan a cambiar para mejor.

Date existe desde 1995 y arrastra decisiones que hoy parecen difíciles de justificar. Los meses empiezan en cero, las zonas horarias pueden jugarte malas pasadas y una fecha puede modificarse desde cualquier parte del código sin que te des cuenta. No es casualidad que durante años hayan aparecido librerías como Moment.js, Luxon o date-fns para intentar hacer más llevadero el trabajo con fechas.

La buena noticia es que Node.js 26 activa por defecto Temporal, la API moderna que sustituye a Date. Su objetivo es muy claro: trabajar con fechas y horas sin sorpresas. Las fechas son inmutables, existen tipos específicos para fechas, horas y zonas horarias, y los cálculos de calendario son mucho más fiables.

En otras palabras, uno de los mayores quebraderos de cabeza de JavaScript por fin tiene una solución oficial.

Y aquí hay una lección interesante para quien está aprendiendo. La primera es práctica: si empiezas ahora con JavaScript, merece la pena aprender Temporal desde el principio y evitar muchos de los problemas que generaciones de desarrolladores tuvieron que soportar.

La segunda es casi una filosofía de aprendizaje. Muchas veces pensamos que llegamos tarde a una tecnología, pero los lenguajes evolucionan constantemente. Los que empiezan hoy no solo aprenden más rápido, sino que en ocasiones aprenden directamente la versión buena, sin cargar con años de trucos, parches y malas costumbres.

Temporal en JavaScript: guía rápida y ejemplos

Temporal ofrece una forma fiable y predecible de trabajar con fechas y horas. A continuación se presentan ejemplos prácticos para empezar a usarlo hoy mismo.

Crear y formatear fechas

// Asumiendo que Temporal está disponible (Node.js 26+ o polyfill si corresponde)
const todayISO = Temporal.Now.plainDateISO(); // PlainDate
console.log(todayISO.toString()); // e.g., 2026-07-09

const specificDate = Temporal.PlainDate.from('2024-12-25');
console.log(specificDate.toString()); // 2024-12-25

Sumar y restar tiempo

const date = Temporal.PlainDate.from('2024-03-15');

// Sumar 2 meses
const plusTwoMonths = date.add({ months: 2 });
console.log(plusTwoMonths.toString()); // 2024-05-15

// Restar 10 días
const minusTenDays = date.subtract({ days: 10 });
console.log(minusTenDays.toString()); // 2024-03-05

Trabajar con horas y zonas horarias

// Instant en UTC y conversión con zona específica
const instant = Temporal.Now.instant();
const zoned = instant.toZonedDateTimeISO('Europe/Madrid');
console.log(zoned.toString()); // 2024-...T...
console.log(zoned.hour);        // hora en la zona indicada

// Creación de un PlainDateTime y su conversión a ZonedDateTime
const dt = Temporal.PlainDateTime.from('2024-07-09T12:00');
const madrid = dt.toZonedDateTime( Temporal.TimeZone.from('Europe/Madrid') );
console.log(madrid.toString());

Diferencias clave frente a Date

// Date tiene meses basados en  y mutabilidad implícita
const d = new Date(2024, , 31); // 31 de enero de 2024 (confusión frecuente)
d.setMonth(d.getMonth() + 1);
console.log(d.toISOString()); // 2024-03-02T...


// Temporal evita sorpresas: objetos inmutables y tipos explícitos
const t = Temporal.PlainDate.from('2024-01-31');
const nextMonth = t.add({ months: 1 });
console.log(nextMonth.toString()); // 2024-02-29 (manejo claro de meses)

Consejos de migración

  • Preferir PlainDate, PlainTime y PlainDateTime para valores sin zona horaria variable.
  • Usar ZonedDateTime cuando se trabajen fechas y horas con zonas horarias específicas.
  • Mantener inmutabilidad para evitar efectos secundarios inesperados durante cálculos.

Enlaces y conceptos clave

  • Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime
  • Temporal.ZonedDateTime para zonas horarias
  • Temporal.Now y Temporal.Instant para instantes precisos
  • Conversión entre instantes y zonas horarias con toZonedDateTimeISO o toZonedDateTime

Si se desea, puedo adaptar este contenido para un formato específico (guía paso a paso, fragmentos reutilizables en snippets, o una versión enfocada a migración desde Date).

#JavaScript #NodeJS #NodeJS26 #Temporal #WebDevelopment #Programacion #DesarrolloWeb #Frontend #Backend #ECMAScript #Codigo #Developer #DevLife #SoftwareEngineerin

10 marzo 2026

Aprende Next.js Gratis con el Curso Oficial de Nextjs.org

Aprende Next.js Gratis con el Curso Oficial de Nextjs.org

Si te interesa el desarrollo web moderno y React, hay un recurso que deberías guardar ya mismo en favoritos: el curso oficial Learn Next.js de la web de Next.js. Se trata de un tutorial interactivo y totalmente gratuito creado por el propio equipo del framework para aprender a construir aplicaciones web modernas paso a paso.

La gracia de este curso es que no se limita a teoría ni a ejemplos sueltos. Desde el primer momento empiezas a construir una aplicación real mientras aprendes cómo funciona el framework por dentro. El tutorial está organizado en varios capítulos que te guían desde los conceptos básicos hasta características más avanzadas, con ejercicios y pequeños tests para comprobar que realmente has entendido cada parte.

A lo largo del curso crearás un proyecto completo, configurando el entorno de desarrollo y trabajando con un proyecto base llamado “ACME”. Poco a poco irás añadiendo funcionalidades reales como estilos con CSS o Tailwind, optimización de imágenes y fuentes, creación de páginas y layouts, navegación entre rutas o gestión de datos en el servidor.

También aprenderás temas bastante potentes del ecosistema moderno de React: renderizado estático y dinámico, streaming para mejorar tiempos de carga, búsqueda y paginación de datos, autenticación de usuarios, manejo de errores y optimización SEO mediante metadata. Todo ello dentro del propio flujo de desarrollo de Next.js.

Una de las mejores cosas del curso es que puedes hacerlo completamente a tu ritmo. La plataforma guarda tu progreso, así que puedes seguir aprendiendo cuando tengas un rato libre sin perder el hilo. Además, al terminar tendrás una aplicación funcional lista para desplegar, lo cual es perfecto si quieres empezar a crear tus propios proyectos con este framework.

En definitiva, si quieres dar el salto de React a aplicaciones web más completas y rápidas, este tutorial es probablemente uno de los mejores puntos de partida. Es oficial, está pensado para aprender construyendo y, lo mejor de todo, no cuesta absolutamente nada.

#NextJS #ReactJS #DesarrolloWeb #Programacion #JavaScript #Frontend #FullStack #WebDevelopment #DevTools #AprenderProgramacion

22 diciembre 2025

FilePond: la librería JavaScript perfecta para subir archivos de forma moderna y ligera

filepond

Si alguna vez has tenido que implementar un sistema de subida de archivos en una web, sabes que puede convertirse en un pequeño dolor de cabeza. Formularios poco atractivos, cargas lentas o falta de compatibilidad… y ahí es donde FilePond entra en escena para salvar el día.

FilePond es una librería JavaScript pensada para crear experiencias de subida de archivos rápidas, modernas y muy fáciles de usar. Lo mejor de todo es que es ligera, flexible y extremadamente personalizable, lo que la hace perfecta tanto para proyectos pequeños como para aplicaciones más grandes.

Una de sus grandes ventajas es que funciona de forma asíncrona, permitiendo subir archivos sin recargar la página. Además, ofrece características que hoy en día casi damos por obligatorias: vista previa de imágenes, validación de archivos, límites de tamaño, reordenación mediante drag & drop y compatibilidad con múltiples frameworks como React, Vue, Angular o Svelte.

Otro punto fuerte de FilePond es su sistema de plugins. Gracias a ellos puedes añadir funciones como compresión de imágenes, recorte, conversión de formatos o incluso detección automática de archivos duplicados. Todo esto sin complicarte la vida y manteniendo el rendimiento de la web.

Y si te preocupa la integración con tu backend, FilePond también lo pone fácil. Funciona perfectamente con APIs REST, subida directa a servidores o incluso servicios en la nube. Básicamente, tú decides cómo y dónde se suben los archivos.

En resumen, FilePond no es solo un input para subir archivos, es una solución completa para mejorar la experiencia del usuario y darle un toque profesional a cualquier formulario.

#FilePond #JavaScript #Frontend #SubidaDeArchivos #WebDevelopment #UX #LibreríasJS #DiseñoWeb

28 abril 2008

IconTexto WebDev | Pack de iconos para tus proyectos

Descarga gratuitamente este pack para dar un toque más agradable a tus proyectos Web, el pack esta compuesto por 30 iconos en formato PNG [128×128, 48×48, 32×32, 16×16] e ICO [128×128, 48×48, 32×32, 16×16].

webdev.jpg