PHP生成唯一订单号的方法汇总


Posted in PHP onApril 16, 2015

第一种

return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

第二种

return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

第三种

//生成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_len; $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);

第四种:

在网上找了一番,发现这位同学的想法挺不错的,redtamo,具体的请稳步过去看看,我作简要概述,该方法用上了英文字母、年月日、Unix 时间戳和微秒数、随机数,重复的可能性大大降低,还是很不错的。使用字母很有代表性,一个字母对应一个年份,总共16位,不多也不少,呵呵。

<?php 
$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));
?>

生成效果:

A422694333616096

唉,不过很可惜,最后项目并没有使用这种方法,说是没必要搞这么复杂, - -!

以上四种方法就是本文给大家分享的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
php打开文件fopen函数的使用说明
Jul 05 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 PHP
php读取纯真ip数据库使用示例
Jan 26 PHP
Yii框架获取当前controlle和action对应id的方法
Dec 03 PHP
php实现的通用图片处理类
Mar 24 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
php 使用mpdf实现指定字段配置字体样式的方法
Jul 29 PHP
PHP序列化和反序列化深度剖析实例讲解
Dec 29 PHP
微信access_token的获取开发示例
Apr 16 #PHP
微信自定义菜单的处理开发示例
Apr 16 #PHP
php简单操作mysql数据库的类
Apr 16 #PHP
PHP扩展程序实现守护进程
Apr 16 #PHP
php简单实现查询数据库返回json数据
Apr 16 #PHP
PHP中SESSION的注销与清除
Apr 16 #PHP
PHP中trim()函数简单使用指南
Apr 16 #PHP
You might like
PHP 中的一些经验积累
2006/10/09 PHP
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
PHP curl使用实例
2015/07/02 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
jQuery 处理表单元素的代码
2010/02/15 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Python3实现二叉树的最大深度
2019/09/30 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
抗洪抢险事迹材料
2014/05/06 职场文书
护士求职信范文
2014/05/24 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
服务明星事迹材料
2014/12/29 职场文书
党员转正申请报告
2015/05/15 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
利用Python实现模拟登录知乎
2022/05/25 Python