2017-11-30 8 views
-5

最初の8つの数字が日付(yyyymmdd)で残りの数字は毎日リセットされる数字の増分になります。例えば日付と数字を組み合わせてIDを作成する方法(PHP)

:idは場合日付の変更をリセットしていること

id 
---------- 
2017301101 

2017301102 

2017301103 

2017011201 

注意。これをPHPで可能にするにはどうすればいいですか?

+4

なぜ(on earth)idを日付としてその形式で使用したいですか? RDBMSは何を使用していますか? –

+2

最後に30番目の月がないことを確認しました。 –

+0

私はこの質問がdownvoted理由を知りません – sumit

答えて

-2

ほとんどの人が言っているように、これはIDを作成する良い方法ではありません。

これに代わる方法として、私はタイムスタンプのために行くことをお勧めします。

このように、あなたがPHP date functionを使用して、このIDを作成するには、このPHP Datetime timestamp

0

を参照してください。私はいつも、少なくとも二桁(01、10、100)であること数をフォーマットするsprintfを使用

function generateId($existingIds) { 
    $currentDate = date('Ymd'); 

    $id = 1; 

    while (in_array($currentDate . sprintf('%02d', $id),$existingIds)) { 
     $id++; 
    } 

    return $currentDate . sprintf('%02d', $id); 
} 

。その後、生成されたIDがまだin_arrayを使用している配列内にないかどうかを確認します。

次に、このような方法で既存のIDの配列を指定してこの関数を呼び出します。

$idArray = []; 
array_push($idArray,generateId($idArray)); 

ここでIDを生成し、すぐに配列にプッシュします。

関連する問題