PHP訂單號的生成

2021-06-17 17:12:53 字數 970 閱讀 8002

前陣子,公司有個電子商務專案,需要生成訂單號。當時的考慮很簡單,取系統時間加上隨機數,或者使用 uniqid() 方法。我們都知道,訂單號最基本的要求就是唯一,這個條件必須滿足。仔細考慮下上述方法,在顧客購買量少的情況下,訂單重複的可能性為零,但是在購買高蜂期生成的訂單號重複是很有可能發生的。所以上述方法不可靠,有待強化。

在網上找了一番,發現這位同學的想法挺不錯的,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訂單號的生成

來自ecshop訂單號生成函式 includes lib order.php檔案中的get order sn 得到新訂單號 return string function build order no 原訂單號格式為年月日 5位隨機數,例如 2012022112345。如果你想改變訂單號的生成規則,可...

訂單號生成

之前用uuid 因為太長改用16位因此在網上找到一下這種做法,年月日擷取 時間戳 在加隨機數 生成乙個訂單 獲取年份 var date j f c d e b h i a date gettime tostring var ordersn date new date getfullyear 2015...

php訂單號遞增,PHP生成訂單號的兩種方法

在開發專案的時候經常有生成訂單號的需求,這裡列出兩種生成20位訂單號的常用方法。方法一 以下 是14位當前時間加6位隨機數,如果增減位數,只需修改末尾的數字6即可。function build order no return date ymdhis substr implode null,array...