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数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
Apache中php.ini的设置方法
Feb 28 PHP
关于尾递归的使用详解
May 02 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
PHP解决高并发的优化方案实例
Dec 10 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
ajax实现无刷新分页(php)
2010/07/18 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
jQuery 使用手册(五)
2009/09/23 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
javascript中call,apply,callee,caller用法实例分析
2019/07/24 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python3.4实现远程控制电脑开关机
2018/02/22 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
python 同时读取多个文件的例子
2019/07/16 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
开展创先争优活动总结
2014/08/28 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
苏州园林导游词
2015/02/03 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书