Saltar al contenido

Fecha mínima y máxima

Te recomendamos que revises esta respuesta en un entorno controlado antes de pasarlo a producción, un saludo.

Solución:

De la especificación, §15.9.1.1:

Un objeto de fecha contiene un número que indica un instante particular en el tiempo dentro de un milisegundo. Tal número se llama valor de tiempo. Un valor de tiempo también puede ser NaN, lo que indica que el objeto Date no representa un instante de tiempo específico.

El tiempo se mide en ECMAScript en milisegundos desde el 1 de enero de 1970 UTC. En los valores de tiempo se ignoran los segundos intercalares. Se supone que hay exactamente 86.400.000 milisegundos por día. Los valores numéricos de ECMAScript pueden representar todos los enteros desde –9,007,199,254,740,992 hasta 9,007,199,254,740,992; este rango es suficiente para medir tiempos con precisión de milisegundos para cualquier instante que esté dentro de aproximadamente 285,616 años, ya sea hacia adelante o hacia atrás, desde el 1 de enero de 1970 UTC.

El intervalo real de horas admitido por los objetos ECMAScript Date es ligeramente menor: exactamente –100 000 000 días a 100 000 000 días medidos en relación con la medianoche del comienzo del 1 de enero de 1970 UTC. Esto da un rango de 8,640,000,000,000,000 milisegundos a ambos lados del 1 de enero de 1970 UTC.

El momento exacto de la medianoche a principios del 01 de enero de 1970 UTC está representado por el valor +0.

Siendo el tercer párrafo el más relevante. Según ese párrafo, podemos obtener la fecha más temprana precisa por especificación de new Date(-8640000000000000)que es el martes 20 de abril de 271.821 a. C. (A. C. = antes de la era común, por ejemplo, el año -271.821).

Para aumentar la respuesta de TJ, exceder los valores mínimos y máximos genera una fecha no válida.

let maxDate = new Date(8640000000000000);
let minDate = new Date(-8640000000000000);

console.log(new Date(maxDate.getTime()).toString());
console.log(new Date(maxDate.getTime() - 1).toString());
console.log(new Date(maxDate.getTime() + 1).toString()); // Invalid Date

console.log(new Date(minDate.getTime()).toString());
console.log(new Date(minDate.getTime() + 1).toString());
console.log(new Date(minDate.getTime() - 1).toString()); // Invalid Date

Si entiendes que te ha sido útil nuestro artículo, nos gustaría que lo compartas con el resto desarrolladores así contrubuyes a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *