在网上找了一番,发现这位同学的想法挺不错的,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));
?>
|