现代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 位数字:1637093681
。
https://en.wikipedia.org/wiki/Unix_time
已更新
我看到此时长度发生了变化:2281-11-20
和 2281-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 年。
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 位数字:1637093681
。
https://en.wikipedia.org/wiki/Unix_time
已更新
我看到此时长度发生了变化:2281-11-20
和 2281-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 年。