- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想生成以下 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-1
和 time
并执行 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/
我正在实现我的第一个支付网关,虽然我的情况可能很简单,因为我可以使所有三个相同,但我想知道一些应该不同的情况。 再说一次,订单号、交易编号和发票编号有什么区别?以及任何其他形式的交易相关信息? 它们都
我目前正在使用 $order = new WC_Order($order_id); (使用网络表单)用于获取与该订单 ID 相关的客户详细信息。我只想能够使用客户的帐单电子邮件或帐单电话从数据库中获取
我有以下查询: SELECT o.ClientId, o.MAX(Date), o.OrderNumber FROM dbo.tblOrders GROUP BY o.ClientId, o.Orde
我公司有一款集成了应用内结算功能的 Android 应用。当客户购买订单时,应用程序会收到订单 ID。之后,应用将此数据发送到服务器,服务器通过 Notification History API 检查
我正在处理重力表,我需要从 Woocommerce 获取订单号。当用户成功下单时,订单号应传递给表单,以便用户可以管理该订单的更多内容。我正在使用这些插件:1. 电子商务2.重力形式3. Gravit
基本要求是以以下格式创建订单号: (M)M-SSS 其中 MM 代表当前月份,SSSS 代表当月的订单顺序。例如,1-002 代表一月份提交的第二个订单。 使用 TRIGGER 我希望自动递增和插入透
我遇到一个问题,我需要将 Amazon.com 的订单号存储到 MySQL 表中。 Amazon.com 订单号由数字和连字符组成,例如 102-1234567-1234567(17 个数字和 2 个
我是一名优秀的程序员,十分优秀!