colyll / date-snowflake
在简短的Twitter雪花ID前添加日期字符串
dev-main
2021-04-21 03:31 UTC
This package is auto-updated.
Last update: 2024-09-08 14:46:06 UTC
README
在简短的Twitter雪花ID前添加日期字符串,例如 2021031336140492049070。
/**
* 由于雪花算法加上日期有26位长,所以修改缩小到22位。
* |-------------------------雪花算法 (64bits)-------------------------------|
* |--补位(1bit)--|---时间戳毫秒(41bit)---|---机器ID(10bit)--|---序号(12bit)--|
*
* |-----------------------修改后(48bits)---------------------------|
* 日期 + |----每日当前毫秒(28bit)---|---机器ID(9bit)---|----序号(11bit)----|
*
*/
使用
a. 通用使用
require('../src/DateSnowflake.php'); use Colyll\DateSnowflake; $dateSnowflake = new DateSnowflake(10); $id = $dateSnowflake->id();
b. 在Laravel项目中使用
composer require colyll/date-snowflake dev-laravel
将 config/snowflake.php
复制到项目根目录下的 config/
目录,使用 SNOWFLAKE_MACHINE_ID=1
在 .env
文件中设置机器ID。
use Colyll\DateSnowflake; $dateSnowflake = new DateSnowflake(); $id = $dateSnowflake->id();