-4

この質問に何か問題があればご容赦ください。非常に馬鹿げた質問かもしれませんが、正確に知る必要があります。

$t = date('s'); // s for second
echo mkTime($t); // 1335629750

上記のコードは常に一意の番号を返しますか?現在のタイムスタンプ(秒のみ)が返されると思いましたが、それはすべてのユーザーに対して一意になります、私は間違っていますか?

ありがとう!

4

4 に答える 4

2
  1. 現在のタイムスタンプを取得するには、を使用time()するだけで十分です。

  2. タイムスタンプはユーザーごとに一意ではなく、複数のユーザーが同時に呼び出された場合に同じタイムスタンプを取得できるため、一意の値であると信頼することはできません。

于 2012-04-28T22:09:12.023 に答える
2

いいえ、現在のタイムスタンプは一意ではありません。何かユニークなものが必要な場合は、PHPの関数uniqidを使用してください。マイクロ秒単位の現在の時刻に基づいて一意の識別子を生成します。

于 2012-04-28T22:12:00.497 に答える
1

いいえ、同じ秒に複数回(同じスクリプトまたは2つの異なるリクエストで)呼び出している場合、一意ではありません。

于 2012-04-28T22:10:12.910 に答える
1

はい、同じ秒に2回実行されるスクリプトは何ですか?それは本当に不可能ではありません。したがって、一意の番号を取得することはまったく保証されません。何かユニークなものが必要な場合は、(半)乱数を作成し、使用されているすべての番号をデータベース/データファイルに保存して、毎回その番号が使用されているかどうかを確認してください。

于 2012-04-28T22:10:24.083 に答える