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();