现代JS new Date().getTime()字符串的确定性长度:Unix Epoch Time

Deterministic length of JS new Date().getTime() string in the modern era: Unix Epoch Time

console.log(new Date().getTime());

我有一个傻问题:在现代,JS new Date().getTime()的长度是否总是13? JS和Java都给出了这个长度的时间字符串。

我的问题是我使用

创建了一个随机 JS 字符串
function generateUniqueID() {
    return new Date().getTime() + '' + Math.round(Math.random() * Math.pow(10,6));
}

此字符串将时间字符串与随机数连接起来。我需要比较 2 个 ID 以查看哪个是 较早 日期。但是这个字符串的随机部分并不总是一个 6 位数字,所以我不能截断尾随的 6 位数字并将其视为时间字符串。要获取时间字符串,我可以考虑前 13 位数字。那个好像是现代的Unix Epoch Time字符串。

但这可靠吗? getTime() 什么时候开始给出 14 位数字?

此外,如果我在维基百科上查找 Unix 纪元时间,我会看到一个 10 位数字作为当前 Unix 时间,而不是 13 位数字:1637093681https://en.wikipedia.org/wiki/Unix_time

已更新 我看到此时长度发生了变化:2281-11-202281-11-21

console.log(new Date('2286-11-20').getTime().toString().length);
console.log(new Date('2286-11-21').getTime().toString().length);

时间戳是自 1970-01-01 00:00:00 UTC(与 Unix 纪元相同)以来的毫秒数。 10000000000000减去当前时间戳得到溢出到14位前的毫秒数,即8,362,906,319,000。然后将其除以一年中的毫秒数,大约为 31,557,600,000,以获得达到该值所需的年数。

这大约是 265 年。