First Kind
Copy Code code as follows:
Return date (' Ymd '). Str_pad (Mt_rand (1, 99999), 5, ' 0 ', str_pad_left);
Second Kind
Copy Code code as follows:
Return date (' Ymd '). substr (Implode (NULL, Array_map (' Ord ', Str_split (substr (), 7, 13), 1)), 0, 8);
Third Kind
Generate 24-bit unique order number, format: YYYY-MMDD-HHII-SS-NNNN,NNNN-CC, which: yyyy= year, mm= month, dd= date, hh=24 format hours, ii= minutes, ss= seconds, nnnnnnnn= random number, cc= check code
@date_default_timezone_set ("PRC");
while (true) {
//Order Date
$order _date = Date (' y-m-d ');
Order number Principal (YYYYMMDDHHIISSNNNNNNNN)
$order _id_main = Date (' Ymdhis '). Rand (10000000,99999999);
Order number Body length
$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));
Unique order number (YYYYMMDDHHIISSNNNNNNNNCC)
$order _id = $order _id_main. Str_pad (100-$order _id_sum%)% 100,2, ' 0 ', str _pad_left);
The fourth kind:
Looking for it on the internet, found this classmate's idea is very good, Redtamo, concrete Please steady past look, I make a brief overview, the method used in English alphabet, years, Unix time stamp and microsecond number, random number, the likelihood of duplication is greatly reduced, or very good. The use of letters is very representative, a letter corresponding to a year, a total of 16, not many also a lot, hehe.
<?php
$yCode = Array (' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ');
$orderSn = $yCode [Intval (Date (' Y ')]-2011]. Strtoupper (Date (' M ')) (Dechex). Date (' d '). SUBSTR (Time (),-5). SUBSTR (Microtime (), 2, 5). sprintf ('%02d ', rand (0));
? >
Build Effect:
Copy Code code as follows:
Alas, unfortunately, the final project did not use this method, said is not necessary to make such a complex,-!
The above four methods is this article to share all the content, I hope you can enjoy.