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,js双版本
Sep 25 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
Jun 17 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
php检查字符串中是否有外链的方法
Jul 29 PHP
php实现简单的上传进度条
Nov 17 PHP
Yii开启片段缓存的方法
Mar 28 PHP
php文件上传类完整实例
May 14 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
PHP数据库处理封装类实例
Dec 24 PHP
PHP微信分享开发详解
Jan 14 PHP
Yii2框架加载css和js文件的方法分析
May 25 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 移除数组重复元素的一点说明
2008/11/27 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
Python hashlib模块用法实例分析
2018/06/12 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
Python Celery多队列配置代码实例
2019/11/22 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
Python如何生成xml文件
2020/06/04 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
女儿十岁生日答谢词
2014/01/27 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
停电调休通知
2015/04/16 职场文书
中秋节主题班会
2015/08/14 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书