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 分页原理详解
Aug 21 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
关于php fread()使用技巧
Jan 22 PHP
php调用mysql数据 dbclass类
May 07 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
PHP 通过Socket收发十六进制数据的实现代码
Aug 16 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
简单实现PHP留言板功能
Dec 21 PHP
PHP函数积累总结
Mar 19 PHP
Laravel 实现关系模型取出需要的字段
Oct 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中使用反射技术的架构插件使用说明
2010/05/18 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP基本语法总结
2014/09/06 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
jquery设置控件位置的方法
2013/08/21 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
用python读写excel的方法
2014/11/18 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
Python制作动态字符图的实例
2019/01/27 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
Python configparser模块操作代码实例
2020/06/08 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
工程总经理工作职责
2013/12/09 职场文书
教师党员一句话承诺
2014/03/28 职场文书
团日活动总结范文
2014/04/25 职场文书
学生安全责任书模板
2014/07/25 职场文书
关于童年的读书笔记
2015/06/26 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL