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 相关文章推荐
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
探讨:如何通过stats命令分析Memcached的内部状态
Jun 14 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
php实现URL加密解密的方法
Nov 17 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
Jul 17 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 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获得url参数中具有&amp;的值的方法
2014/03/05 PHP
onpropertypchange
2006/07/01 Javascript
获取Javscript执行函数名称的方法
2006/12/22 Javascript
定义select的边框颜色
2008/04/28 Javascript
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
angularJS模态框$modal实例代码
2017/05/27 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
python简单实现AES加密和解密
2019/03/28 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
请解释接口的显式实现有什么意义
2012/05/26 面试题
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
cf战队收人广告词
2014/03/14 职场文书
浅析Python实现DFA算法
2021/06/26 Python
python利用while求100内的整数和方式
2021/11/07 Python
python区块链持久化和命令行接口实现简版
2022/05/25 Python