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 相关文章推荐
实现“上一页”和“下一页按钮
Oct 09 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
php分页示例分享
Apr 30 PHP
Yii框架获取当前controlle和action对应id的方法
Dec 03 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
PHP addAttribute()函数讲解
Feb 03 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
php无限级分类实现评论及回复功能
Feb 18 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 GeoIP的使用教程
2011/03/09 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
Laravel find in set排序实例
2019/10/09 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
Vue程序调试的方法
2019/06/17 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
浅析使用Python操作文件
2017/07/31 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
python pyheatmap包绘制热力图
2018/11/09 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
python 动态调用函数实例解析
2019/10/21 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
python爬虫请求头的使用
2020/12/01 Python
大学生村官任职感言
2014/01/09 职场文书
咖啡厅创业计划书范本
2014/01/22 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
社区灵活就业证明
2014/11/03 职场文书
商务邀请函
2015/01/30 职场文书
2015年服务员工作总结
2015/04/08 职场文书
全国助残日活动总结
2015/05/11 职场文书
老人与海读书笔记
2015/06/26 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
高中历史教学反思
2016/02/19 职场文书
redis中lua脚本使用教程
2021/11/01 Redis