gpt4 book ai didi

PHP 生成带日期的唯一订单号

转载 作者:可可西里 更新时间:2023-11-01 12:27:44 26 4
gpt4 key购买 nike

我想生成以下 12 位数字格式的唯一标识符:

YYYYMMDDXXXX

例子:

201403052318

地点:

YYYYMMDD 是当前日期值,其他 XXXX 是随机生成的值。

$today = date("Ymd");
$rand = sprintf("%04d", rand(0,9999));
$unique = $today . $rand;

每日所需的唯一数量约为 100。使用 PHP 我应该使用什么方法来防止 rand 值可能重复或使所有 id 最大值唯一?也许可以使用当前时间函数将这些数字压缩在最后 4 个字符中?

编辑:连接到 MySQL 数据库的唯一值作为表的主索引。它是与数据库中任何存储信息无关的初始值。

最佳答案

您不能依赖 rand() ,您有可能会生成重复项(对于 rand(0,9999) 生成重复,但在某些时候会重复)。

因此,与其使用 rand(),不如创建一个增量值(比如……从 1 开始)并附加到您生成的日期。

下次当你重新生成一个新的 id 时,获取那个增量值的(比如你把它存储在某个地方......必须是 1 对吗?)状态,增加它并将它附加到你的新日期。

不是一个理想的解决方案..(欢迎批评)

您可以使用 uniqid 结合 sha-1time 并执行 substr() 前 4 个字符。

<?php
$today = date("Ymd");
$rand = strtoupper(substr(uniqid(sha1(time())),0,4));
echo $unique = $today . $rand;

输出:

201403094B3F

关于PHP 生成带日期的唯一订单号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279146/

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