PHP生成唯一訂單號(hào)的方法匯總
第一種
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位唯一訂單號(hào)碼,格式:YYYY-MMDD-HHII-SS-NNNN,NNNN-CC,其中:YYYY=年份,MM=月份,DD=日期,HH=24格式小時(shí),II=分,SS=秒,NNNNNNNN=隨機(jī)數(shù),CC=檢查碼 @date_default_timezone_set("PRC"); while(true){ //訂購日期 $order_date = date('Y-m-d'); //訂單號(hào)碼主體(YYYYMMDDHHIISSNNNNNNNN) $order_id_main = date('YmdHis') . rand(10000000,99999999); //訂單號(hào)碼主體長(zhǎng)度 $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)); } //唯一訂單號(hào)碼(YYYYMMDDHHIISSNNNNNNNNCC) $order_id = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100,2,'0',STR_PAD_LEFT);
第四種:
在網(wǎng)上找了一番,發(fā)現(xiàn)這位同學(xué)的想法挺不錯(cuò)的,redtamo,具體的請(qǐng)穩(wěn)步過去看看,我作簡(jiǎn)要概述,該方法用上了英文字母、年月日、Unix 時(shí)間戳和微秒數(shù)、隨機(jī)數(shù),重復(fù)的可能性大大降低,還是很不錯(cuò)的。使用字母很有代表性,一個(gè)字母對(duì)應(yīng)一個(gè)年份,總共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)); ?>
生成效果:
唉,不過很可惜,最后項(xiàng)目并沒有使用這種方法,說是沒必要搞這么復(fù)雜, - -!
以上四種方法就是本文給大家分享的全部?jī)?nèi)容了,希望大家能夠喜歡。
- 使用PHP uniqid函數(shù)生成唯一ID
- PHP之uniqid()函數(shù)用法
- PHP實(shí)現(xiàn)會(huì)員賬號(hào)單唯一登錄的方法分析
- PHP實(shí)現(xiàn)的生成唯一RequestID類完整示例
- 完美解決thinkphp唯一索引重復(fù)時(shí)出錯(cuò)的問題
- PHP生成唯一ID之SnowFlake算法
- 3種php生成唯一id的方法
- PHP實(shí)現(xiàn)生成唯一會(huì)員卡號(hào)
- PHP生成唯一訂單號(hào)
- PHP隨機(jī)生成唯一HASH值自定義函數(shù)
- 高并發(fā)php uniqid不重復(fù)唯一標(biāo)識(shí)符生成方案
相關(guān)文章
PHP守護(hù)進(jìn)程化在C和PHP環(huán)境下的實(shí)現(xiàn)
這篇文章主要介紹了PHP守護(hù)進(jìn)程化的實(shí)現(xiàn)的方法以及原理過程,以及在C環(huán)境和PHP環(huán)境下實(shí)現(xiàn)的代碼,喜歡的朋友收藏一下。2017-11-11Laravel使用memcached緩存對(duì)文章增刪改查進(jìn)行優(yōu)化的方法
這篇文章主要介紹了Laravel使用memcached緩存對(duì)文章增刪改查進(jìn)行優(yōu)化的方法,結(jié)合實(shí)例形式分析了Laravel框架中使用memcached緩存實(shí)現(xiàn)針對(duì)增刪改查等操作的優(yōu)化功能,需要的朋友可以參考下2016-10-10Zend Framework教程之Zend_Config_Ini用法分析
這篇文章主要介紹了Zend Framework教程之Zend_Config_Ini用法,較為詳細(xì)的分析了Zend_Config_Ini操作配置數(shù)據(jù)的相關(guān)技巧,需要的朋友可以參考下2016-03-03PHP圖片等比縮放類SimpleImage使用方法和使用實(shí)例分享
這篇文章主要介紹了PHP圖片等比縮放類SimpleImage使用方法和使用實(shí)例分享,需要的朋友可以參考下2014-04-04PHP實(shí)現(xiàn)登錄驗(yàn)證碼校驗(yàn)功能
這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)驗(yàn)證碼校驗(yàn)功能,主要是利用PHP中的 SESSION功能來實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05php二維數(shù)組按某個(gè)鍵值排序的實(shí)例講解
今天小編就為大家分享一篇關(guān)于php二維數(shù)組按某個(gè)鍵值排序的實(shí)例講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02Zend Framework框架教程之Zend_Db_Table_Rowset用法實(shí)例分析
這篇文章主要介紹了Zend Framework框架教程之Zend_Db_Table_Rowset用法,結(jié)合實(shí)例形式分析了Zend_Db_Table_Rowset操作結(jié)果集的相關(guān)技巧,需要的朋友可以參考下2016-03-03淺談php使用curl模擬多線程發(fā)送請(qǐng)求
這篇文章主要介紹了php使用curl模擬多線程發(fā)送請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03php模擬ping命令(php exec函數(shù)的使用方法)
使用php模擬我們常用的DOS命令ping命令的方法,這中間用到了exec函數(shù)并做函數(shù)解釋,還有相關(guān)函數(shù)system的使用。2013-10-10