14

この 2 つの時間関数のうち、どちらが優れていますか?

私のウェブサイトには、マイクロ秒以下ごとに数千のユーザーが送信するフォームがあるため、サーバー上で同時に数千のリクエストが送信されます。

そこで、実行中にスリープを使用しないものを使用したいと思います。$_SERVER['REQUEST_TIME']また、とはどのくらいユニークtime()ですか? どちらもマイクロ秒ごとに変化しますか?

フォームを送信するたびに $_SERVER['REQUEST_TIME'] は変更されますか? のように、time() 関数は時差ごとに変化します。

2 つのうちのいずれかから生成された一意の結果を追加する検証のために、ユーザーに一意の URL を与える必要がありますか? また、microtime() を使用すると PHP がスリープ状態になりますか? ではない?

4

6 に答える 6

14

場合によります。

$_SERVER['REQUEST_TIME']要求が開始された時間に対応し、Web サーバーがこのデータを提供します。

time()この行が呼び出された時刻を確認するために、実際に syscall を実行します。

完全な回答を提供できるように、何をしたいのかをより具体的にする必要があります。

于 2012-08-24T10:35:44.033 に答える
6

time()1 秒に 1 回変化します。 microtime()(オプションで、(true)) より頻繁に。

$_SERVER['REQUEST_TIME']PHP プロセスの開始時に設定されますが、単純な変数検索であるため、より高速です。ほとんどの場合、マイクロ秒単位の精度は必要ありません。特に、Web ページを生成するためにプロセスがほんの一瞬しか実行されない場合はなおさらです。

于 2012-08-24T10:36:46.180 に答える
2

$_SERVER['REQUEST_TIME']セッションが開始されたときの時間ですが、それは使用することとは完全に異なりtime()microtime()その実行に対して一定であるという点で異なります。

于 2012-08-24T10:35:12.220 に答える
2

microtime()に基づいてミリ秒を考慮する必要があります

$milliseconds = round(microtime(true) * 1000);
于 2012-08-24T10:36:18.210 に答える
1

検証のために一意にする必要がある場合は、time()、microtime()、またはuniqid()を使用する必要があります。

質問は、なぜあなたはユニークであるために時間を必要とするのですか?

編集:質問を編集したため。

$ _SERVER ['REQUEST_TIME']は、リクエストの開始のタイムスタンプを提供します。ユーザーがリクエストした時間に応じて変化します。

于 2012-08-24T10:34:12.253 に答える