The first method
Copy code The code is as follows:
return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
Second type
Copy code The code is as follows:
return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
Third type
//生成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);
The fourth type:
After searching on the Internet, I found that this classmate’s idea is quite good, redtamo. Please go and check it out for details. I will give a brief overview. This method uses English letters, year, month, day, and Unix timestamp. With microseconds and random numbers, the possibility of repetition is greatly reduced, which is still very good. The use of letters is very representative, one letter corresponds to a year, a total of 16 digits, no more, no less, haha.
<?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)); ?>
Generation effect:
Copy code The code is as follows: A422694333616096
Alas, it’s a pity that this method was not used in the final project. It was said that there was no need to make it so complicated, - -!
The above four methods are all the content shared with you in this article. I hope you will like it.