使用 javascript 时间创建一个唯一的数字

2022-08-30 04:39:26

我需要使用javascript动态生成唯一的ID号。过去,我通过使用时间创建一个数字来做到这一点。该数字将由四位数年份、两位数月份、两位数日期、两位数小时、两位数分钟、两位数秒和三位数毫秒组成。所以它看起来像这样:20111104103912732...这将为我的目的提供足够确定的唯一数字。

自从我这样做以来已经有一段时间了,我不再有代码了。任何人都有代码来执行此操作,或者有更好的建议来生成唯一ID?


答案 1

更好的方法是:

new Date().valueOf();

而不是

new Date().getUTCMilliseconds();

valueOf() 是“最有可能”的唯一数字。http://www.w3schools.com/jsref/jsref_valueof_date.asp


答案 2

创建一个数字的最短方法是,您可以非常确定该数字在您能想到的尽可能多的单独实例中是唯一的

Date.now() + Math.random()

如果函数调用中存在 1 毫秒的差异,则 100% 保证生成不同的数字。对于同一毫秒内的函数调用,您只有在相同的毫秒内创建超过几百万个数字时才应该开始担心,这不太可能。

有关在同一毫秒内获得重复数字的概率的更多信息,请参阅 https://stackoverflow.com/a/28220928/4617597