@@ -49,15 +49,13 @@ final class UUID
4949 public static function v1 (string $ node = null ): string
5050 {
5151 [$ unixTs , $ subSec ] = self ::getUnixTimeSubSec ();
52- $ time = $ unixTs . $ subSec ;
53- $ time = str_pad (dechex ((int )$ time + self ::$ timeOffset ), 16 , '0 ' , STR_PAD_LEFT );
54- $ clockSeq = random_int (0 , 0x3fff );
52+ $ time = str_pad (dechex ((int )($ unixTs . $ subSec ) + self ::$ timeOffset ), 16 , '0 ' , STR_PAD_LEFT );
5553 return sprintf (
5654 '%08s-%04s-1%03s-%04x-%012s ' ,
5755 substr ($ time , -8 ),
5856 substr ($ time , -12 , 4 ),
5957 substr ($ time , -15 , 3 ),
60- $ clockSeq | 0x8000 ,
58+ random_int ( 0 , 0x3fff ) & 0x3fff | 0x8000 ,
6159 $ node ?? self ::getNode ()
6260 );
6361 }
@@ -323,8 +321,8 @@ private static function getTime(array $uuid, int $version): DateTimeInterface
323321 private static function getUnixTimeSubSec (int $ version = 1 ): array
324322 {
325323 $ timestamp = microtime ();
326- $ unixTs = ( int ) substr ($ timestamp , 11 );
327- $ subSec = ( int ) substr ($ timestamp , 2 , 7 );
324+ $ unixTs = substr ($ timestamp , 11 );
325+ $ subSec = substr ($ timestamp , 2 , 7 );
328326 if ($ version === 1 ) {
329327 return [$ unixTs , $ subSec ];
330328 }
0 commit comments