ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで一意の注文番号を生成する方法の概要

PHP_PHP チュートリアルで一意の注文番号を生成する方法の概要

WBOY
WBOYオリジナル
2016-07-13 09:57:011233ブラウズ

PHPで固有の注文番号を生成する方法のまとめ

1つ目

コードは次のとおりです:


date('Ymd') を返します。 str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

2番目のタイプ

コードは次のとおりです:


return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

3番目のタイプ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

//24 桁の一意の注文番号を生成します。形式: YYYY-MMDD-HHII-SS-NNNN、NNNN-CC、ここで: YYYY=年、MM=月、DD=日付、HH=24 形式の時間、II =分、SS=秒、NNNNNNNN=乱数、CC=チェックコード

@date_default_timezone_set("PRC");

ながら(真){

//注文日

$order_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_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);

4番目のタイプ:

インターネットで検索したところ、このクラスメートのアイデアが非常に優れていることがわかりました。redtamo さんのアイデアを詳しく見てみましょう。この方法では、英語の文字、年、月、日、Unix のタイムスタンプが使用されます。マイクロ秒、乱数、繰り返しの可能性は大幅に減少しますが、それでも非常に優れています。文字の使い方がとても代表的で、1文字が年に相当し、合計16桁、それ以上でもそれ以下でもありません(笑)。

1

2

3

4

$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');

$orderSn = $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . substr(time(), -5) 。 substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));

?>

生成効果:

コードは次のとおりです:

A422694333616096

残念ながら、この方法は最終的なプロジェクトでは使用されませんでした。それほど複雑にする必要はなかったと言われています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/985147.html技術記事 PHP で一意の注文番号を生成する方法は次のように要約されます。 return date('Ymd') 。 2 番目のコードは次のとおりです。 return date( 「Ymd」).su...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。