这几天一直在写个人使用的用户中心,虽然期间遇到不少的问题,但还是一点点的都解决了,也从制作期间学到不少的知识,今天就说一说利用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生成唯一订单号的方法相关推荐

  1. 四种JAD生成器之比较(附生成器下载)

    四种JAD生成器之比较(附生成器下载) 因上传游戏较多,难免有时游戏的JAD文件会出错,这时就需要自己重新生成一个JAD文件,但看到网上有不少机友不会用JAD生成器,现就简单的写个说明,以供参考. 我 ...

  2. win10运行在哪里打开_Win10在哪里卸载软件程序?Win10四种正确卸载软件或者游戏的方法...

    如今Win10系统已经是目前主流的操作系统,各个功能都十分完善了,可能熟悉Win7或者XP的朋友,刚刚开始使用Win10操作系统的一些朋友,连卸载软件程序都不知道怎么卸载,找不到地方.那么Win10在 ...

  3. 使用Python生成四种字符组合的复杂随机密码

    使用Python的random和string库生成大写字母.小写字母.数字.特殊字符(14个)这四种字符组合的复杂度较高的随机密码.精选特殊字符,兼容性好.

  4. 采购订单管理的四种常见类型

    采购管理对于任何成功的企业都至关重要.如果你的企业没有统一的采购管理流程,那么你可能无法对你的采购进行解释,并可能犯下代价高昂的采购错误.采购订单或许是有效采购管理流程中最重要的部分.让我们来看看采购 ...

  5. php swf生成,五种php生成swf 文件代码

    /* 下面这几款php生成flash文件代码,是从简单的生成swf文件到生成 flash动画文件等,每个实例都是经典的. */ //首先开启php扩展php_ming $f = new swffont ...

  6. 生成唯一id号解决方法

    1 添加一个id自增表t_Next FUserID(用户唯一标示符) FTableName(要唯一id号的表的名称) FNextNo(下一个id号) 2 添加存储过程如下 GO Create proc ...

  7. Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 获取map的值主要有四种方法,分为两类: 调用 map.keySet() 方法来获取 key ...

  8. Map四种获取key和value值的方法,以及对map中的元素排序

    2019独角兽企业重金招聘Python工程师标准>>> 获取map的值主要有四种方法,这四种方法又分为两类: 一类是调用map.keySet()方法来获取key和value的值, 另 ...

  9. 4x3矩阵键盘扫描法c语言,四种4*4矩阵键盘的扫描方法

    第一种:这种方法就是郭天祥书上教的扫描方法,很容易理解,但是程序比较长. P2=0xfe://给第一列送低电平 temp=P2: temp=temp&0xf0; while(temp!=0xf ...

最新文章

  1. linux guide编译器,GUIDE编译器-GUIDE编程工具-GUIDE编译器下载 v1.0.2官方版-完美下载...
  2. TQuery组件的Open方法与ExecSQL的区别
  3. 第 37 章 ACOS - CLI
  4. 用CSS画一些多边形状
  5. 设计模式学习01-策略模式
  6. [转]没有找到 MFC42D.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。解决方法!...
  7. 2018百度之星初赛B轮 p1m2
  8. git gui怎么拉取项目代码_Gitee码云如何更新项目上的代码?
  9. 用MATLAB计算光的等厚干涉实验中的不确定度
  10. java 复制文本到剪贴板,使用Java将文本复制到剪贴板
  11. 三菱plc控制步进电机实例_电工想做PLC工程师?那步进电机的编程控制指令你一定要了解...
  12. python 经典图书排行榜_书榜 | 计算机书籍(9.2-9.8)销售排行榜
  13. linux mysql 光盘安装教程_Linux上mysql安装详细教程
  14. 帝国cms忘记后台帐号密码的处理方法
  15. Python实现遗传算法求函数最值
  16. javase加强,十、IO流2
  17. SSLOJ·谷仓的安保【DFS】
  18. itextsharp操作pdf删除某页
  19. 基于web的在线视频编辑的设计
  20. 如何在github上上传文件

热门文章

  1. MATLAB图像处理的开运算和噪声相关的基本操作-填充和去除—imfill与bwareaopen函数运算
  2. jquery miniui的体验
  3. 苹果开发者20年8月二次认证
  4. deepin 中安装python3
  5. ❤️blotemJ陆小马学习资源分享❤️
  6. python一维数组使用方法_python中向一维数组添加元素的方法
  7. 【阿里云Maven仓库jar包下载】
  8. 华为nove2链接电脑传文件报错
  9. python图像处理——图片透明化处理工具
  10. 使用a标签,点击自动下载文件(Excel),不做页面跳转