2016-10-26 3 views
1

Es tut mir leid für diese ziemlich einfach Thema, aber ich bin nicht in der LageExtract Zeitstempel von uuid1

eine richtige Antwort nach mehreren Google-Suche gefunden habe ich einen uuid1 und möchte der Zeitstempel in extrahieren, die es enthält, das scheint zu 100% möglich, weil diese Website mir die richtige Antwort gibt: https://www.famkruithof.net/uuid/uuidgen wenn ich versuche mit ce53f406-9ba0-11e6-a6e8-e715bd508dc3

Ich fand keine einfache Lösung nach meiner Forschung ... Es gibt keine grundlegende Lösung, um diesen Zeitstempel zu extrahieren?

Mit freundlichen Grüßen,

Antwort

1

Beachten Sie die UUID Sie zur Verfügung gestellt:

ce53f406-9ba0-11e6-a6e8-e715bd508dc3 

Die erste Oktave ist ce53f406. Dies ist eine hexadezimale Zahl und hat eine Einheit von 100 Nanosekunden. Dies bedeutet, dass dieser Teil in jedem 100-Nanosekunden-Intervall um 1 erhöht wird. Die maximale Anzahl dieser Oktaven kann ffffffff sein. Sobald ffffffff erreicht ist, wird die Oktave ganz links auf 0 zurückgesetzt, während die nächste Oktave (9ba0) um 1 erhöht wird und so weiter. Daher in jedem 100 Nanosekundenintervall UUID würde wie folgt erhalten generiert:

ce53f406-9ba0-11e6-a6e8-e715bd508dc3 
ce53f407-9ba0-11e6-a6e8-e715bd508dc3 
ce53f408-9ba0-11e6-a6e8-e715bd508dc3 
ce53f409-9ba0-11e6-a6e8-e715bd508dc3 
ce53f40a-9ba0-11e6-a6e8-e715bd508dc3 
. 
. 
. 
fffffffd-9ba0-11e6-a6e8-e715bd508dc3 
fffffffe-9ba0-11e6-a6e8-e715bd508dc3 
ffffffff-9ba0-11e6-a6e8-e715bd508dc3 
00000000-9ba1-11e6-a6e8-e715bd508dc3 

Jetzt wissen Sie die Logik, und wenn Sie den Zeitstempel von einem UUID wissen sollten Sie in der Lage sein, zum anderen zu erhalten durch den Vergleich.

+0

es tut uns ist, so lange, um Ihnen den Punkt für diese sehr gute Antwort zu geben;) Danke für das Beispiel! –

+0

Gern geschehen. Ich bin froh, dass es geholfen hat :) –

1

Diese Frage tauchte auf meinem Radar auf, da sie mit "php" getaggt ist. Wenn Sie nach einer PHP-Lösung suchen, um den Zeitstempel einer UUID der Version 1 zu erhalten, können Sie die Bibliothek ramsey/uuid verwenden, um UUIDs zu analysieren. (Es ist meine Bibliothek, also bin ich ein bisschen voreingenommen.)

Installieren Sie die Bibliothek mit Composer:

composer require ramsey/uuid 

Und dann kann man Dinge wie diese machen einen PHP DateTime Objekt aus der UUID zu erhalten:

$myUuid = 'ce53f406-9ba0-11e6-a6e8-e715bd508dc3'; 

$uuid = \Ramsey\Uuid\Uuid::fromString($myUuid); 

echo 'UUID timestamp (60-bit integer): ' . $uuid->getTimestamp() . "\n"; 
echo 'Formatted date/time: ' . $uuid->getDateTime()->format('r') . "\n"; 
echo 'Unix timestamp: ' . $uuid->getDateTime()->getTimestamp() . "\n"; 

wird diesem Beispiel etwas auszudrucken, die wie folgt aussieht:

UUID timestamp (60-bit integer): 136967953640059910 
Formatted date/time: Wed, 26 Oct 2016 17:22:44 +0000 
Unix timestamp: 1477502564