6

Google、php.net、phpメーリングリストのアーカイブを試しましたが、探しているものが見つかりません。多分それは明白であるか、多分誰もこれについて不思議に思っていません...

何年もの間、microtime()を使用して、マイクロ秒を含む現在の時刻を取得してきました。しかし、誰かがマニュアルページの文章を指摘してくれました。「この関数は、gettimeofday()システムコールをサポートするオペレーティングシステムでのみ使用できます。」

また、PHPのgettimeofday()は、同じ状況を示唆しています。「これはgettimeofday(2)へのインターフェースです。」

しかし...どのようなシステムでは、このシステムコールを利用できませんか?いくつかのグーグルは、Windows上のCでgettimeofday()実装を取得しようとする多くのCプログラマーを提供しました。これは、それが含まれていないように見えるためです。しかし、PHPのmicrotime()とgettimeofday()は、Windows(少なくとも私がアクセスできるボックス)では問題なく機能しているようです。また、microtime()またはgettimeofday()のいずれかの存在を呼び出す前にチェックしているように見えるPHPコードは、Web上のどこにも見つからないようです。また、Windowsで作業しているPHPプログラマーがたくさんいる必要があります。ボックスなので...

マニュアルの文章を無視して、両方の機能が常に利用可能であると信じるべきですか?または、microtime()またはgettimeofday()を使用せずに、マイクロ秒を含むシステム時刻に到達するための別のクロスプラットフォームの方法はありますか?または、両方の関数が常に存在しますが、gettimeofday()システムコールが利用できない場合はマイクロ秒を与えませんか?

編集1:

http://www.php.net/microtime

"Returns the current Unix timestamp with microseconds.
This function is only available on operating systems that 
support the gettimeofday() system call."

多分これは私のポイントをいくらか明確にします。

4

2 に答える 2

1

ソースによると、PHP には Windows 用の独自のgettimeofday実装があります。しかし、利用可能な他のポートはありませgettimeofdayん。そのため、UNIX ベースのシステムと Windows を除き、他のオペレーティング システムでは使用できません。microtime()

于 2011-08-12T13:41:51.513 に答える
0

私は Windows と Linux の両方で広範囲に開発を行っており、両方のプラットフォームで動作する PHP アプリケーションを実行しています。私はこの問題に気づいたことがなく、私にとって問題になったこともありません。

たどり着いたら渡るべき橋だと思います。私には問題ではないように思われるものの解決策を見つけるために、多くの時間とエネルギーが費やされる可能性があります。これが実際に問題になるまでマニュアルの文を無視することをお勧めします。それが発生する可能性がないためにリソースを浪費するのではありません.

あなたがこの問題を私に知らせてくれたので、私は自分のアドバイスに従い、それを忘れます.

于 2011-08-11T13:18:57.043 に答える