console.log(new Date().getTime()); Tengo una pregunta tonta: en la era moderna, ¿la longitud de JS new Date().getTime() siempre es 13 ? Tanto JS como Java dan cadenas de tiempo de esta longitud.
Mi problema es que tengo una cadena JS aleatoria creada con
function generateUniqueID() { return new Date().getTime() + '' + Math.round(Math.random() * Math.pow(10,6)); }Esta cadena concatena una cadena de tiempo con un número aleatorio. Necesito comparar 2 ID para ver cuál es para una fecha anterior . Pero la parte aleatoria de esta cadena no siempre es un número de 6 dígitos, por lo que no puedo truncar los 6 dígitos finales y considerar esa cadena de tiempo. Para obtener la cadena de tiempo, puedo considerar los primeros 13 dígitos. Esa parece ser la cadena Unix Epoch Time en la era moderna.
¿Pero es eso confiable? ¿Cuándo empezaría getTime() a dar 14 dígitos?
Además, si busco Unix Epoch Time en Wikipedia, veo un número de 10 dígitos como el Unix Time actual, no 13 dígitos: 1637093681 . https://en.wikipedia.org/wiki/Unix_tiempo
Actualizado Veo los cambios de longitud en este punto: 2281-11-20 y 2281-11-21
console.log(new Date('2286-11-20').getTime().toString().length); console.log(new Date('2286-11-21').getTime().toString().length);La marca de tiempo es milisegundos desde 1970-01-01 00:00:00 UTC (igual que la época de Unix). Reste la marca de tiempo actual de 10000000000000 para obtener la cantidad de milisegundos hasta que se desborde a 14 dígitos, que es 8,362,906,319,000 . Luego divida esto por la cantidad de milisegundos en un año, que es aproximadamente 31,557,600,000 , para obtener la cantidad de años hasta que alcance ese valor.
Esto es alrededor de 265 años.