第一種
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)
//唯一訂單號碼(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));
?>
PHP生成唯一訂單號的方法彙總
第一種 複製 如下 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 ...
PHP生成唯一訂單號
order number date ymd substr implode null,array map ord str split substr uniqid 7,13 1 0,8 簡單從內到外解析一下這個訂單號生成過程 1 date ymd 這個很容易理解,是在最前方拼接乙個當前年月日組成的數字。...
PHP生成唯一訂單號
做 類專案經常需要生成唯一訂單號 方法一 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 sub...