gpt4 book ai didi

php - 如何根据历史时间生成UUID?

转载 作者:搜寻专家 更新时间:2023-10-31 21:48:47 25 4
gpt4 key购买 nike

我正在使用 https://github.com/ramsey/uuid生成 UUID(基于时间的 v1 UUID)的库。

如何使用历史时间而不是当前时间从该库生成 UUID?

我感觉它与 FixedTimeProvider 类和类似下面的内容有关,但不确定如何让它工作。

$uuidFactory = new \Ramsey\Uuid\UuidFactory();
$uuidFactory->setTimeGenerator(new \Ramsey\Uuid\Generator\DefaultTimeGenerator(
new \MyVendor\Uuid\NodeProvider(),
new \MyVendor\Uuid\TimeConverter(),
new \MyVendor\Uuid\TimeProvider()
));
\Ramsey\Uuid\Uuid::setFactory($uuidFactory);

$uuid = \Ramsey\Uuid\Uuid::uuid1();

最佳答案

这是你如何做到这一点:

$timestamp = strtotime('2017-01-01 12:00:00');
$startTimeProvider = new FixedTimeProvider([
'sec' => $timestamp,
'usec' => 0,
]);
$startTimeFeatureSet = new FeatureSet();
$startTimeFeatureSet->setTimeProvider($startTimeProvider);
$factory = new UuidFactory($startTimeFeatureSet);
Uuid::setFactory($factory);
echo Uuid::uuid1()->toString();

可以在这里测试生成的UUID的时间戳:https://www.famkruithof.net/uuid/uuidgen

关于php - 如何根据历史时间生成UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com