最初の8つの数字が日付(yyyymmdd)で残りの数字は毎日リセットされる数字の増分になります。例えば日付と数字を組み合わせてIDを作成する方法(PHP)
:idは場合日付の変更をリセットしていること
id
----------
2017301101
2017301102
2017301103
2017011201
注意。これをPHPで可能にするにはどうすればいいですか?
最初の8つの数字が日付(yyyymmdd)で残りの数字は毎日リセットされる数字の増分になります。例えば日付と数字を組み合わせてIDを作成する方法(PHP)
:idは場合日付の変更をリセットしていること
id
----------
2017301101
2017301102
2017301103
2017011201
注意。これをPHPで可能にするにはどうすればいいですか?
ほとんどの人が言っているように、これはIDを作成する良い方法ではありません。
これに代わる方法として、私はタイムスタンプのために行くことをお勧めします。
このように、あなたがPHP date functionを使用して、このIDを作成するには、このPHP Datetime timestamp
を参照してください。私はいつも、少なくとも二桁(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を生成し、すぐに配列にプッシュします。
なぜ(on earth)idを日付としてその形式で使用したいですか? RDBMSは何を使用していますか? –
最後に30番目の月がないことを確認しました。 –
私はこの質問がdownvoted理由を知りません – sumit