2012-04-28 5 views
-5

この質問に間違いがある場合は私にご容赦ください。それは非常にばかな質問かもしれませんが、正確に知る必要があります。PHP:日付( 's')が常に一意の値を返すことを保証できますか?

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

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

ありがとうございます!

+2

いいえ、あなたは一意になるとは限りません。 – j08691

+1

php docsの関数を調べることで簡単にこれを理解できました。 – ilanco

+1

あなたのコードは現在の時刻から秒数をとります(例えば ' '2012-04-28 05:24:30')。この数値は、['mktime()'](http://php.net/mktime)の '$ hour'パラメータに入力されます。いいえ、必ずしも一意の数字を返すとは限りません。 – salathe

答えて

2
  1. だけtime()を使用すると、

  2. タイムスタンプは、ユーザーごとに固有のものではないと同時に

    と呼ばれる場合は、複数のユーザーが同じタイムスタンプを得ることができるように一意の値であることをに依存することはできません現在のタイムスタンプを取得するには十分であろう
1

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

1

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

2

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

+0

アイデアありがとう。 –

関連する問題