Lingua-e
JavaScript

¿Qué significa Invalid Date?

← Errores

Se crea silenciosamente un objeto Invalid Date cuando new Date() recibe una cadena que no puede parsear. Las operaciones sobre él devuelven NaN o lanzan un RangeError. El constructor Date de JavaScript es permisivo con lo que acepta, pero los formatos aceptados varían entre navegadores.

Por qué ocurre

  • Pasar una cadena de fecha en formato DD/MM/YYYY, que no se parsea de forma confiable.
  • Pasar una cadena vacía o null a new Date().
  • Usar un formato específico de localización que el navegador no reconoce.
  • Recibir una fecha de entrada de usuario o API que está malformada.

Ejemplos

JavaScript

Código que causa el error

const d = new Date("31/12/2024"); // wrong format
console.log(d.toISOString());

Error en la terminal

RangeError: Invalid time value

Cómo solucionarlo

Siempre usa el formato ISO 8601 (YYYY-MM-DD o YYYY-MM-DDTHH:mm:ssZ) para las fechas. Valida con isNaN(date.getTime()) después de la construcción. Considera usar una librería como date-fns o Temporal (etapa 3) para un parseo de fechas robusto.

Código corregido

// Use ISO 8601 format: YYYY-MM-DD
const d = new Date("2024-12-31");
console.log(d.toISOString()); // "2024-12-31T00:00:00.000Z"

// Always validate first
function parseDate(str) {
  const d = new Date(str);
  return isNaN(d.getTime()) ? null : d;
}

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis