在網上找了一番,發現這位同學的想法挺不錯的,redtamo,具體的請穩步過去看看,我作簡要概述,該方法用上了英文字母、年月日、Unix 時間戳和微秒數、隨機數,重復的可能性大大降低,還是很不錯的。使用字母很有代表性,一個字母對應一個年份,總共16位,不多也不少.
1.
復制代碼 代碼如下:<?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
2.
復制代碼 代碼如下:<?php
function build_order_no(){
return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
}
echo build_order_no();
?>
輸出結果:
2014062356100485 2014062349535399
以上所述就是本文的全部內容了,希望大家能夠喜歡。