我想根据时间戳生成一个唯一的号码 每个请求必须具有与二十四小时内所有其他请求不同的唯一编号。
任何想法如何生成它可以说最多9个数字?
答案 0 :(得分:1)
有两种全球类型的解决方案:
将所有唯一ID存储在一个位置,然后生成/递增它们。最佳示例:将请求存储在(MySQL)数据库中,其中索引是自动增量。
另一种解决方案是尝试根据microtime计算唯一ID。作为此选项的示例,我们可以直接使用:
filter_var($_SERVER['REQUEST_TIME_FLOAT'], FILTER_SANITIZE_NUMBER_INT);
将返回字符串中的9-13个字符,或者我们可以使用PHP uniqeid function获取唯一字符串:
$my_id = uniqid();
根据当前时间获取带前缀的唯一标识符 微秒。
由于它基于microtime,因此返回值的长度为13个字符。
如果你想要它更独特,你也可以这样使用前缀:
$my_id = uniqid( $_SERVER['REMOTE_ADDR'] );
但是返回值会更长。
答案 1 :(得分:-1)
你可以使用
echo rand(1,999999999);die;
但唯一编号的9位数字是不够的,这取决于您想要生成的唯一键的数量