JavaScript zamanıyla benzersiz bir numara oluşturun


101

Javascript kullanarak anında benzersiz kimlik numaraları oluşturmam gerekiyor. Geçmişte bunu zamanı kullanarak bir sayı oluşturarak yaptım. Sayı, dört basamaklı yıl, iki basamaklı ay, iki basamaklı gün, iki basamaklı saat, iki basamaklı dakika, iki basamaklı saniye ve üç basamaklı milisaniyeden oluşacaktır. Yani şöyle bir şeye benzeyecektir: 20111104103912732 ... bu, amaçlarım için benzersiz bir sayı konusunda yeterince kesinlik sağlayacaktır.

Bunu yapmayalı epey oldu ve artık koda sahip değilim. Bunu yapacak koda sahip olan veya benzersiz bir kimlik oluşturmak için daha iyi bir önerisi olan var mı?



Düşündün new Date().toISOString ()
gaspard

Yanıtlar:


68

Sadece benzersiz bir sayı istiyorsanız, o zaman

var timestamp = new Date().getUTCMilliseconds();

size basit bir sayı verir. Ancak okunabilir sürüme ihtiyacınız varsa, biraz işlem yapacaksınız:

var now = new Date();

timestamp = now.getFullYear().toString(); // 2011
timestamp += (now.getMonth < 9 ? '0' : '') + now.getMonth().toString(); // JS months are 0-based, so +1 and pad with 0's
timestamp += ((now.getDate < 10) ? '0' : '') + now.getDate().toString(); // pad with a 0
... etc... with .getHours(), getMinutes(), getSeconds(), getMilliseconds()

3
@ Áxel: Benzersiz olduğunu söylemedim, "benzersiz-ish" dedim. Tabii ki, istemci tarafında oluşturulan bir zaman damgası kullanmak çiftler oluşturacaktır.
Marc B

79
Zaman damgası olmalıdır döndürür 0 ile 999 arasında bir sayı 1 Ocak 1970. (normal zaman damgası) beri döner milisaniye. w3schools.com/jsref/jsref_obj_date.aspnew Date().getTime();date.getUTCMilliseconds()date.getTime()
Automatico

8
-1, soru benzersiz sayı ile ilgili olduğundan. İlk kod bloğu tamamen atlanmalıdır.
Andrey

Bu, 2 benzersiz değer oluşturabilir:function foo1() {console.log(new Date().getUTCMilliseconds()); console.log(new Date().getUTCMilliseconds()); }
Sharikov Vladislav

10
getUTCMilliseconds The value returned by getUTCMilliseconds() is an integer between 0 and 999.. Bu benzersiz kimlik için en kötü fikirdir, ilk paragraf kaldırılmalıdır.
gaspard

120

Daha iyi bir yaklaşım şöyle olacaktır:

new Date().valueOf();

onun yerine

new Date().getUTCMilliseconds();

valueOf () "büyük olasılıkla" benzersiz bir sayıdır. http://www.w3schools.com/jsref/jsref_valueof_date.asp .


19
Benzersiz bir sayı değil .. milisaniyeler, benzersiz olarak kabul edilecek kadar ayrıntılı değil.
Vamsi Mohan Jayanti

3
Veya basitçe+new Date()
thdoan

1
Sadece bir for döngüsü çalıştırdım ve ile yinelenen sonuçlar aldım valueOf(). Ben sadece bunu kullanıyorum - +performance.now().toString().replace('.', 7) developer.mozilla.org/en-US/docs/Web/API/Performance/now
Itzik Ben Hutta

1
@ItzikBenHutta Aynı değerin 3 katı var. Çok çekirdekli CPU kullanmak, muhtemelen iş parçacıklı bir yarış durumu.
that-ben

73

Oldukça emin olabileceğiniz bir sayı oluşturmanın en kısa yolu, aklınıza gelebilecek kadar çok farklı örnek arasında benzersiz olacaktır.

Date.now() + Math.random()

İşlev çağrısında 1 milisaniyelik bir fark varsa, farklı bir numara üretilmesi% 100 garantilidir . Aynı milisaniye içindeki işlev çağrıları için, yalnızca bu aynı milisaniye içinde birkaç milyondan fazla sayı oluşturuyorsanız endişelenmeye başlamalısınız ki bu pek olası değildir.

Aynı milisaniye içinde tekrarlanan bir sayı alma olasılığı hakkında daha fazla bilgi için bkz. Https://stackoverflow.com/a/28220928/4617597


7
Ayrıca, rastgele sayının tüm bitlerini saklamak istiyorsanız, bunları ayrı ayrı oluşturabilir ve dizeler olarak birleştirebilirsiniz: new Date (). ValueOf (). ToString (36) + Math.random (). ToString (36) .substr (2) Bu size yeterli miktarda entropi olan 19 karakterlik alfanümerik bir dizi verecektir. Yarısı tahmin edilebilir olsa da.
Erik Pukinskis

3
Bu, diğer yüksek oylu cevapları denerken kabul edilen cevap olmalı, bir asenkron işlevden çağırırken arka arkaya 2 ve hatta 3 kat aynı değeri aldım. Bu, standart 8 çekirdekli bir CPU'nun tam olarak aynı anda 8 benzersiz dizge oluşturması için yeterli rastgelelik sağlıyor gibi görünüyor, bu benim kullanımım için yeterince iyi.
that-ben

En iyisi:Date.now() + '' + Math.random()
NSD

Date.now()Bu, basit / hızlı bir döngü içinde olduğunda porsiyon işe yaramaz
APu

23

Bu, aşağıdaki kodla kolayca elde edilebilir:

var date = new Date();
var components = [
    date.getYear(),
    date.getMonth(),
    date.getDate(),
    date.getHours(),
    date.getMinutes(),
    date.getSeconds(),
    date.getMilliseconds()
];

var id = components.join("");

6
ya bu aynı milisaniyede iki kez çağrılırsa?
TBE

1
Aslında, ama operasyon için sorun yoktu: "Bu, benim amaçlarım için benzersiz bir sayı konusunda yeterince kesinlik sağlayacaktır."
Ağustos Lilleaas

18

İşte bir grup sayıdan daha küçük bir şey istediğimde yaptığım şey - tabanı değiştirin.

var uid = (new Date().getTime()).toString(36)

1
@blushrt true, nadiren çatışmalara neden olabilir. Zaman damgasını code.google.com/p/crypto-js gibi bir şey kullanarak md5 edebilirsiniz , ancak benim amaçlarım için "yeterince benzersiz" ve daha da önemlisi, daha hızlıydı.
frumbert

@frumbert, duruma göre değişir. MD5 de çarpışmaya dayanıklı değildir. Ama sizin durumunuzda, sayısal değeri ascii temsiline dönüştürdüğünü varsaydığım toString (36) yüzünden çok hızlı bir şekilde başım belaya girdi, emin değilim, ancak uuid jeneratörünüzü yeterince sık çağırırsanız sorunu görebilirim, sadece son 3 karakterler değişiyor, bu nedenle çarpışmaya girme şansınız yüksek. Yeni Date.getTime () çağrılarına sadık kalırsanız çok daha iyi oranlar elde edersiniz. Ama hey, sizin amaçlarınız için çalıştıysa, sorun değil, sadece istemci tarafı kodum için bazı benzersiz kimlikler için ihtiyacım vardı, uuid node lib'yi kullandım.
blushrt

Bunu seviyorum! (Date.now() + Math.random()).toString(36)Milisaniyelik çatışmaları önlemek için ayarladım . Kısa ve "k92g5pux.i36" gibi bir şey oluşturuyor
Edward

16

Bu Date, bir örnek oluşturmaktan daha hızlı performans gösterir, daha az kod kullanır ve her zaman benzersiz bir sayı üretir (yerel olarak):

function uniqueNumber() {
    var date = Date.now();

    // If created at same millisecond as previous
    if (date <= uniqueNumber.previous) {
        date = ++uniqueNumber.previous;
    } else {
        uniqueNumber.previous = date;
    }

    return date;
}

uniqueNumber.previous = 0;

jsfiddle: http://jsfiddle.net/j8aLocan/

Bunu Bower ve npm'de yayınladım: https://github.com/stevenvachon/unique-number

Sayı olmayan bir tane oluşturmak için cuid , puid veya shortid gibi daha ayrıntılı bir şey de kullanabilirsiniz .


1
Bana öyle geliyor ki, rastgele sayıların eklenmesi aslında onu DAHA AZ tam kanıt yapacak. Sadece zaman damgasıyla, aynı olması için tam olarak aynı milisaniyede iki sayının oluşturulması gerekir. Rastgele iki sayı ekleyerek, artık matematik nedeniyle çarpıldığında aynı sonucu verebilecek birçok sayı kombinasyonu oluşturdunuz. Olası olmadığını biliyorum ama ... bu doğru değil mi?
Phil

Hmm .. Evet. Belki de benim cevabım ve abarber'ın cevabının bir kombinasyonu en iyisidir.
Steven Vachon

Cevabım güncellendi. Düşündüğün için teşekkürler.
Steven Vachon

2
İyi çaba, cevabınızı seçmeye çalışmak değil ... ama bu yeni çözüm aslında "aynı milisaniyede oluşturulan birden fazla id" sorununu çözmüyor çünkü biliyorsunuz .. MÜŞTERİ tarafında javascript. Farklı bir kullanıcı tam olarak aynı milisaniyede bir sayı oluşturduysa, bu 'diğer' kullanıcının önceki benzersizSayısı. Sunucuda bir yerde saklamadığınız ve benzersiz olup olmadığını kontrol etmediğiniz sürece ... Bunun gibi tamamen js tabanlı bir çözümün benzersiz bir sayı oluşturduğundan emin olmasının hiçbir yolu yoktur .
Phil

Bu, benzersiz bir sayıdan daha ayrıntılı bir sistem olurdu.
Steven Vachon

12

kullanırım

Math.floor(new Date().valueOf() * Math.random())

Yani eğer herhangi bir şans eseri kod aynı anda ateşlenirse, rastgele sayıların aynı olma ihtimali de çok düşüktür.


new Date()Yararlı olduğundan emin değilim . Aynı sayıları iki farklı
tarihle alabilirsiniz

1
Demek istediğim, nasıl basitçe yapmaktan daha iyi Math.random()?
JMaylin

7

Bu şunları yapmalıdır:

var uniqueNumber = new Date().getTime(); // milliseconds since 1st Jan. 1970

1
Pek çok durumda kullanışlıdır, bu gerçekten saf "benzersiz" kimlikler oluşturmasa bile, bu işlev aynı milisaniye içinde birden çok kez çağrılırsa ... Ama her neyse, kullanıcı ve kullanıcı arayüzü etkileşimi için bu iyidir.
Benjamin Piette

1
bu kabul edilen cevap olmalıdır. Zor ve gereksiz birçok ilgisiz saçmalık ve bu cevap her milisaniye için benzersiz bir zaman veriyor.
gen b.

6

Birkaç milisaniye sonra benzersiz bir sayı istiyorsanız Date.now(), o zaman kullanın , eğer onu bir içinde kullanmak istiyorsanız birlikte for loopkullanınDate.now() and Math.random()

for döngüsü içindeki benzersiz sayı

function getUniqueID(){
    for(var i = 0; i< 5; i++)
      console.log(Date.now() + ( (Math.random()*100000).toFixed()))
}
getUniqueID()

output :: tüm sayılar benzersizdir

15598251485988384 155982514859810330 155982514859860737 155982514859882244 155982514859883316

olmadan benzersiz numara Math.random()

function getUniqueID(){
        for(var i = 0; i< 5; i++)
          console.log(Date.now())
    }
    getUniqueID()

output :: Sayılar tekrarlanır

1559825328327 1559825328327 1559825328327 1559825328328 1559825328328


4

Çevrimiçi araştırmadan, oturum başına benzersiz bir kimlik oluşturan aşağıdaki nesneyi buldum:

        window.mwUnique ={
        prevTimeId : 0,
        prevUniqueId : 0,
        getUniqueID : function(){
            try {
                var d=new Date();
                var newUniqueId = d.getTime();
                if (newUniqueId == mwUnique.prevTimeId)
                    mwUnique.prevUniqueId = mwUnique.prevUniqueId + 1;
                else {
                    mwUnique.prevTimeId = newUniqueId;
                    mwUnique.prevUniqueId = 0;
                }
                newUniqueId = newUniqueId + '' + mwUnique.prevUniqueId;
                return newUniqueId;                     
            }
            catch(e) {
                mwTool.logError('mwUnique.getUniqueID error:' + e.message + '.');
            }
        }            
    }

Bazı insanlara yardımcı olabilir.

Şerefe

Andrew


bu, bu soru hakkında bugüne kadarki en basit ve hataya dayanıklı çözümdür. Farklı bir çözüm denedim (aşağıya bakın), ancak bununla ilgili daha fazla geliştirilmesi gereken bazı endişelerim var.
loretoparisi

3

Bu aynı zamanda şunları da yapmalıdır:

(function() {
    var uniquePrevious = 0;
    uniqueId = function() {
        return uniquePrevious++;
    };
}());

Lodash UniqueId fonksiyonunda bulabileceğiniz çok benzer bir uygulama, benim için çözümünüz basit ve temiz.
Kamil Naja

3

ES6'da:

const ID_LENGTH = 36
const START_LETTERS_ASCII = 97 // Use 64 for uppercase
const ALPHABET_LENGTH = 26

const uniqueID = () => [...new Array(ID_LENGTH)]
  .map(() => String.fromCharCode(START_LETTERS_ASCII + Math.random() * ALPHABET_LENGTH))
 .join('')

Misal:

 > uniqueID()
 > "bxppcnanpuxzpyewttifptbklkurvvetigra"

2

JS'de her zaman benzersiz kimlik alın

function getUniqueId(){
   return (new Date().getTime()).toString(36) + new Date().getUTCMilliseconds();
}

getUniqueId()    // Call the function

------------results like

//"ka2high4264"

//"ka2hj115905"

//"ka2hj1my690"

//"ka2hj23j287"

//"ka2hj2jp869"

Bu gerçekten benzersiz bir değer vermeyecek, bu kodu bununla deneyin[1,2,3,5,6,7,8,9,10].map(item => getUniqueId());
APu

2

2020'de, kriptografik olarak güçlü rastgele değerler oluşturmak için tarayıcı içi Crypto API'yi kullanabilirsiniz.

function getRandomNumbers() {
  const typedArray = new Uint8Array(10);
  const randomValues = window.crypto.getRandomValues(typedArray);
  return randomValues.join('');
}

console.log(getRandomNumbers());
// 1857488137147725264738

hem Uint8Array hem de Crypto.getRandomValues , IE11 dahil olmak üzere tüm büyük tarayıcılarda desteklenir


1

Bu kod parçacığını kendi ilerideki referansım için buraya gönderiyorum (garanti edilmez, ancak tatmin edici "yeterince benzersiz"):

// a valid floating number
window.generateUniqueNumber = function() {
    return new Date().valueOf() + Math.random();
};

// a valid HTML id
window.generateUniqueId = function() {
    return "_" + new Date().valueOf() + Math.random().toFixed(16).substring(2);
};

1

Bu, sadece sayıların "karakter" değişkenini değiştirmesini istiyorsanız, neredeyse garantili benzersiz bir 32 karakterli anahtar istemci tarafı oluşturur.

var d = new Date().valueOf();
var n = d.toString();
var result = '';
var length = 32;
var p = 0;
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

for (var i = length; i > 0; --i){
    result += ((i & 1) && n.charAt(p) ? '<b>' + n.charAt(p) + '</b>' : chars[Math.floor(Math.random() * chars.length)]);
    if(i & 1) p++;
};

https://jsfiddle.net/j0evrdf1/1/


1

bunu kullanın: javascript'te benzersiz numara oluşturmak için

var uniqueNumber=(new Date().getTime()).toString(36);

Gerçekten çalışıyor. :)


1
    function UniqueValue(d){
        var dat_e = new Date();
        var uniqu_e = ((Math.random() *1000) +"").slice(-4)

        dat_e = dat_e.toISOString().replace(/[^0-9]/g, "").replace(dat_e.getFullYear(),uniqu_e);
        if(d==dat_e)
            dat_e = UniqueValue(dat_e);
        return dat_e;
    }

1. Çağrı: UniqueValue ('0')
2. Çağrı: UniqueValue (UniqueValue ('0')) // karmaşık olacaktır

Örnek çıktı:
{console.log (UniqueValue (UniqueValue ( '0')));} için (; i <10. ++ var i = 0)
60950116113248802
26780116113248803
53920116113248803
35840116113248803
47430116113248803
41680116113248803
42980116113248804
34750116113248804
20950116113248804
03730116113248804


1

Milisaniyeler düğümde her milisaniyede güncellenmediğinden, aşağıdaki bir yanıttır. Bu, benzersiz bir insan tarafından okunabilir bilet numarası oluşturur. Programlama ve nodejs konusunda yeniyim. Yanılıyorsam beni duzelt lutfen.

function get2Digit(value) {
if (value.length == 1) return "0" + "" + value;
else return value;

}

function get3Digit(value) {
if (value.length == 1) return "00" + "" + value;
else return value;

}

function generateID() {
    var d = new Date();
    var year = d.getFullYear();
    var month = get2Digit(d.getMonth() + 1);
    var date = get2Digit(d.getDate());
    var hours = get2Digit(d.getHours());
    var minutes = get2Digit(d.getMinutes());
    var seconds = get2Digit(d.getSeconds());
    var millSeconds = get2Digit(d.getMilliseconds());
    var dateValue = year + "" + month + "" + date;
    var uniqueID = hours + "" + minutes + "" + seconds + "" + millSeconds;

    if (lastUniqueID == "false" || lastUniqueID < uniqueID) lastUniqueID = uniqueID;
    else lastUniqueID = Number(lastUniqueID) + 1;
    return dateValue + "" + lastUniqueID;
}

1
let uuid = ((new Date().getTime()).toString(36))+'_'+(Date.now() + Math.random().toString()).split('.').join("_")

örnek sonuç "k3jobnvt_15750033412250_18299601769317408"


0

@Abarber tarafından önerilen çözümün iyi bir çözüm olduğunu varsaydık , çünkü kullanıyor (new Date()).getTime()bu yüzden milisaniyelik bir pencereye sahip vetick bu aralıkta çarpışma olması durumunda kullanır, burada eylemde açıkça görebileceğimiz gibi yerleşik kullanmayı düşünebiliriz:

İlk olarak, 1/1000 pencere çerçevesinde nasıl çarpışmalar olabileceğini kullanarak (new Date()).getTime()şunları görebiliriz:

console.log( (new Date()).getTime() ); console.log( (new Date()).getTime() )
VM1155:1 1469615396590
VM1155:1 1469615396591
console.log( (new Date()).getTime() ); console.log( (new Date()).getTime() )
VM1156:1 1469615398845
VM1156:1 1469615398846
console.log( (new Date()).getTime() ); console.log( (new Date()).getTime() )
VM1158:1 1469615403045
VM1158:1 1469615403045

İkinci olarak, 1/1000 penceresinde çarpışmaları önleyen önerilen çözümü deniyoruz:

console.log( window.mwUnique.getUniqueID() ); console.log( window.mwUnique.getUniqueID() ); 
VM1159:1 14696154132130
VM1159:1 14696154132131

Bununla process.nextTickbirlikte, olay döngüsünde çağrılan düğüm gibi işlevleri tek olarak kullanmayı düşünebiliriz tickve burada iyi açıklanmıştır . Tabii ki tarayıcıda yok, process.nextTickbu yüzden nasıl yapılacağını bulmalıyız. Bu uygulama bir kuracaktır nextTickolan tarayıcıda I / O en yakın işlevlerini kullanarak tarayıcıda işlevini setTimeout(fnc,0), setImmediate(fnc), window.requestAnimationFrame. Önerildiği gibi burada biz ekleyebilir window.postMessage, ama bir ihtiyacı beri okuyucuya bu terk addEventListeneryanı. Burada daha basit tutmak için orijinal modül sürümlerini değiştirdim:

getUniqueID = (c => {
 if(typeof(nextTick)=='undefined')
nextTick = (function(window, prefixes, i, p, fnc) {
    while (!fnc && i < prefixes.length) {
        fnc = window[prefixes[i++] + 'equestAnimationFrame'];
    }
    return (fnc && fnc.bind(window)) || window.setImmediate || function(fnc) {window.setTimeout(fnc, 0);};
})(window, 'r webkitR mozR msR oR'.split(' '), 0);
 nextTick(() => {
   return c( (new Date()).getTime() )  
 })
})

Yani 1/1000 penceresinde var:

getUniqueID(function(c) { console.log(c); });getUniqueID(function(c) { console.log(c); });
undefined
VM1160:1 1469615416965
VM1160:1 1469615416966

0

Belki daha da iyisi getTime () veya valueOf () kullanmaktır, ancak bu şekilde benzersiz artı insan tarafından anlaşılabilir bir sayı (tarih ve saati temsil eden) döndürür:

window.getUniqNr = function() {
  var now = new Date(); 
  if (typeof window.uniqCounter === 'undefined') window.uniqCounter = 0; 
  window.uniqCounter++; 
  var m = now.getMonth(); var d = now.getDay(); 
  var h = now.getHours(); var i = now.getMinutes(); 
  var s = now.getSeconds(); var ms = now.getMilliseconds();
  timestamp = now.getFullYear().toString() 
  + (m <= 9 ? '0' : '') + m.toString()
  +( d <= 9 ? '0' : '') + d.toString() 
  + (h <= 9 ? '0' : '') + h.toString() 
  + (i <= 9 ? '0' : '') + i.toString() 
  + (s <= 9 ? '0' : '') + s.toString() 
  + (ms <= 9 ? '00' : (ms <= 99 ? '0' : '')) + ms.toString() 
  + window.uniqCounter; 

  return timestamp;
};
window.getUniqNr();

0
let now = new Date();
let timestamp = now.getFullYear().toString();
let month = now.getMonth() + 1;
timestamp += (month < 10 ? '0' : '') + month.toString();
timestamp += (now.getDate() < 10 ? '0' : '') + now.getDate().toString();
timestamp += (now.getHours() < 10 ? '0' : '') + now.getHours().toString();
timestamp += (now.getMinutes() < 10 ? '0' : '') + now.getMinutes().toString();
timestamp += (now.getSeconds() < 10 ? '0' : '') + now.getSeconds().toString();
timestamp += (now.getMilliseconds() < 100 ? '0' : '') + now.getMilliseconds().toString();

0

Kolay ve her zaman benzersiz bir değer elde edin:

const uniqueValue = (new Date()).getTime() + Math.trunc(365 * Math.random());
**OUTPUT LIKE THIS** : 1556782842762

0

Bu şekilde yaptım

function uniqeId() {
   var ranDom = Math.floor(new Date().valueOf() * Math.random())
   return _.uniqueId(ranDom);
}

0
function getUniqueNumber() {

    function shuffle(str) {
        var a = str.split("");
        var n = a.length;
        for(var i = n - 1; i > 0; i--) {
            var j = Math.floor(Math.random() * (i + 1));
            var tmp = a[i];
            a[i] = a[j];
            a[j] = tmp;
        }
        return a.join("");
    }
    var str = new Date().getTime() + (Math.random()*999 +1000).toFixed() //string
    return Number.parseInt(shuffle(str));   
}

0

yukarıdaki #Marcelo Lazaroni çözümüne referansla

Date.now() + Math.random()

1567507511939.4558 (4 ondalık ile sınırlı) gibi bir sayı döndürür ve her% 0,1'de benzersiz olmayan sayılar (veya çarpışmalar) verir.

toString () eklemek bunu düzeltir

Date.now() + Math.random().toString()

"15675096840820.04510962122198503" (bir dize) döndürür ve daha da "yavaş" olduğundan, "aynı" milisaniyeyi asla elde edemezsiniz.


0

toString(36)Biraz yavaş kullanarak , işte daha hızlı ve benzersiz bir çözüm:

new Date().getUTCMilliseconds().toString() +
"-" +
Date.now() +
"-" +
filename.replace(/\s+/g, "-").toLowerCase()

0

Benzersiz bir numara almak için:

function getUnique(){
    return new Date().getTime().toString() + window.crypto.getRandomValues(new Uint32Array(1))[0];
}
// or 
function getUniqueNumber(){
    const now = new Date();
    return Number([
        now.getFullYear(),
        now.getMonth(),
        now.getDate(),
        now.getHours(),
        now.getMinutes(),
        now.getUTCMilliseconds(),
        window.crypto.getRandomValues(new Uint8Array(1))[0]
    ].join(""));
}

Misal:

getUnique()
"15951973277543340653840"

for (let i=0; i<5; i++){
    console.log( getUnique() );
}
15951974746301197061197
15951974746301600673248
15951974746302690320798
15951974746313778184640
1595197474631922766030

getUniqueNumber()
20206201121832230

for (let i=0; i<5; i++){
    console.log( getUniqueNumber() );
}
2020620112149367
2020620112149336
20206201121493240
20206201121493150
20206201121494200

uzunluğu kullanarak değiştirebilirsiniz:

new Uint8Array(1)[0]
// or
new Uint16Array(1)[0]
// or
new Uint32Array(1)[0]

Soru rastgele bir dize değil, benzersiz bir sayı istedi .
tshimkus

0

bulduğum basit çözüm

var bugün = new Date (). valueOf ();

console.log (bugün);

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.