php订单怎么生成,四种PHP生成唯一订单号的方法
这几天一直在写个人使用的用户中心,虽然期间遇到不少的问题,但还是一点点的都解决了,也从制作期间学到不少的知识,今天就说一说利用PHP生成订单单的方法。
订单号,大家都不陌生,无论从在网上购物,还是在线下转帐,汇款。而交易的依据就是订单号,当然我们要随机生成的订单号也不能相同的,下面提供了四种利用PHP生成订单号的方法。
第一种PHP生成唯一单号的方法
PHP代码$str = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
/**飞鸟慕鱼博客 */
echo $str;
注:这种方式是利用当前的时间,加随机机补全的方法生成,当然我们可以把时间精确到秒级
第二种PHP生成唯一单号的方法
代码$str = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
/**飞鸟慕鱼博客 */
echo $str;
说明:这种方法和第一种差不多,不过要比第一种复杂一些
第三种PHP生成订单号的方法代码
//生成24位唯一订单号码,格式:YYYY-MMDD-HHII-SS-NNNN,NNNN-CC,
//其中:YYYY=年份,MM=月份,DD=日期,HH=24格式小时,II=分,SS=秒,NNNNNNNN=随机数,CC=检查码
//飞鸟慕鱼博客
@date_default_timezone_set("PRC");
while(true){
//订购日期
$order_date = date('Y-m-d');
//订单号码主体(YYYYMMDDHHIISSNNNNNNNN)
$order_id_main = date('YmdHis') . rand(10000000,99999999);
//订单号码主体长度
$order_id_len = strlen($order_id_main);
$order_id_sum = 0;
for($i=0; $i
$order_id_sum += (int)(substr($order_id_main,$i,1));
}
//唯一订单号码(YYYYMMDDHHIISSNNNNNNNNCC)
$order_id = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100,2,'0',STR_PAD_LEFT);
注:这个代码是不是看起来非常的复杂,不过这种方案的代码,适合放到一些大型电商网站上使用,可以处理微妙级的订单单号不重复。
第四种方法
这个第四种的方法,感觉非常的有意思,当时我看到这段代码的时候,就为写出这段代码的人感到惊讶。
代码$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
$orderSn = $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));
说明一下:该方法用上了英文字母、年月日、Unix 时间戳和微秒数、随机数,重复的可能性大大降低,还是很不错的。使用字母很有代表性,一个字母对应一个年份,总共16位,不多也不少。
以上就有利用PHP生成唯一单号的方法,如果是不是很大型的电商网站,个人推荐使用第二种方法,快速高效。
如果你有,别的好的方法,可以在下方留言给我哦!
php订单怎么生成,四种PHP生成唯一订单号的方法相关推荐
- 四种JAD生成器之比较(附生成器下载)
四种JAD生成器之比较(附生成器下载) 因上传游戏较多,难免有时游戏的JAD文件会出错,这时就需要自己重新生成一个JAD文件,但看到网上有不少机友不会用JAD生成器,现就简单的写个说明,以供参考. 我 ...
- win10运行在哪里打开_Win10在哪里卸载软件程序?Win10四种正确卸载软件或者游戏的方法...
如今Win10系统已经是目前主流的操作系统,各个功能都十分完善了,可能熟悉Win7或者XP的朋友,刚刚开始使用Win10操作系统的一些朋友,连卸载软件程序都不知道怎么卸载,找不到地方.那么Win10在 ...
- 使用Python生成四种字符组合的复杂随机密码
使用Python的random和string库生成大写字母.小写字母.数字.特殊字符(14个)这四种字符组合的复杂度较高的随机密码.精选特殊字符,兼容性好.
- 采购订单管理的四种常见类型
采购管理对于任何成功的企业都至关重要.如果你的企业没有统一的采购管理流程,那么你可能无法对你的采购进行解释,并可能犯下代价高昂的采购错误.采购订单或许是有效采购管理流程中最重要的部分.让我们来看看采购 ...
- php swf生成,五种php生成swf 文件代码
/* 下面这几款php生成flash文件代码,是从简单的生成swf文件到生成 flash动画文件等,每个实例都是经典的. */ //首先开启php扩展php_ming $f = new swffont ...
- 生成唯一id号解决方法
1 添加一个id自增表t_Next FUserID(用户唯一标示符) FTableName(要唯一id号的表的名称) FNextNo(下一个id号) 2 添加存储过程如下 GO Create proc ...
- Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 获取map的值主要有四种方法,分为两类: 调用 map.keySet() 方法来获取 key ...
- Map四种获取key和value值的方法,以及对map中的元素排序
2019独角兽企业重金招聘Python工程师标准>>> 获取map的值主要有四种方法,这四种方法又分为两类: 一类是调用map.keySet()方法来获取key和value的值, 另 ...
- 4x3矩阵键盘扫描法c语言,四种4*4矩阵键盘的扫描方法
第一种:这种方法就是郭天祥书上教的扫描方法,很容易理解,但是程序比较长. P2=0xfe://给第一列送低电平 temp=P2: temp=temp&0xf0; while(temp!=0xf ...
最新文章
- linux guide编译器,GUIDE编译器-GUIDE编程工具-GUIDE编译器下载 v1.0.2官方版-完美下载...
- TQuery组件的Open方法与ExecSQL的区别
- 第 37 章 ACOS - CLI
- 用CSS画一些多边形状
- 设计模式学习01-策略模式
- [转]没有找到 MFC42D.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。解决方法!...
- 2018百度之星初赛B轮 p1m2
- git gui怎么拉取项目代码_Gitee码云如何更新项目上的代码?
- 用MATLAB计算光的等厚干涉实验中的不确定度
- java 复制文本到剪贴板,使用Java将文本复制到剪贴板
- 三菱plc控制步进电机实例_电工想做PLC工程师?那步进电机的编程控制指令你一定要了解...
- python 经典图书排行榜_书榜 | 计算机书籍(9.2-9.8)销售排行榜
- linux mysql 光盘安装教程_Linux上mysql安装详细教程
- 帝国cms忘记后台帐号密码的处理方法
- Python实现遗传算法求函数最值
- javase加强,十、IO流2
- SSLOJ·谷仓的安保【DFS】
- itextsharp操作pdf删除某页
- 基于web的在线视频编辑的设计
- 如何在github上上传文件