Un objeto Date 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 Fecha 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 el tiempo, los segundos bisiestos se ignoran. Se supone que hay exactamente 86,400,000 milisegundos por día. Los valores del número 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 de 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 rango real de tiempos admitidos por los objetos de fecha ECMAScript es ligeramente menor: exactamente –100,000,000 días a 100,000,000 días medidos en relación con la medianoche al comienzo del 01 de enero de 1970 UTC. Esto da un rango de 8,640,000,000,000,000 milisegundos a cada lado 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.
El tercer párrafo es el más relevante. Con base en ese párrafo, podemos obtener la fecha más temprana precisa por especificación new Date(-8640000000000000)
, que es el martes 20 de abril de 271,821 aC (BCE = Antes de la era común , por ejemplo, el año -271,821).