PHPでは、 GetTimeOfdayは、現在の詳細を返す非常に実用的な機能です。この関数を通じて、開発者は現在の時刻に関するマイクロ秒レベルの情報を取得できます。これは通常、高精度のタイムスタンプが必要なアプリケーションシナリオで使用されます。この記事では、 GetTimeofday関数と返されるデータ構造の使用方法を詳細に紹介します。
GetTimeOfday関数の主な機能は、現在の時間数とマイクロ秒を含む現在の時間情報を返すことです。それが返す時間情報は、通常、複数の有用な時間の詳細を含む連想配列として返されます。
gettimeofday(bool $as_float = false): array|float
$ as_float (オプションパラメーター): trueに設定されている場合、関数はフローティングタイムスタンプ(秒およびマイクロ秒を含む)を返します。
$ as_floatパラメーターがfalse (デフォルト)の場合、 gettimeofdayによって返される結果は、次の要素を含む連想配列です。
SEC :現在の時間の一部の秒数、秒単位。
USEC :マイクロ秒単位(1秒= 1000000マイクロ秒)のマイクロ秒部分。
MinuteWest :現在のタイムゾーンとGMTの時差(分)。
DSTTIME :夏時間を使用するかどうか。現在の時間が夏時間である場合、1つは0です。それ以外の場合は0です。
<?php
$time_info = gettimeofday();
echo '<pre>';
print_r($time_info);
echo '</pre>';
?>
実行結果:
Array
(
[sec] => 1627455747
[usec] => 123456
[minuteswest] => 480
[dsttime] => 1
)
上記の出力から、返された配列には、 SEC 、 USEC 、 MinuteWest 、 DSTTimeの4つの要素が含まれていることがわかります。各要素は異なる時間情報を表します。ここで、 SECとUSECは一般的に使用する秒とマイクロ秒の値です。
GetTimeOfdayが返した時間を通じて、さまざまな操作を実行できます。たとえば、2つの時点間のギャップを計算するか、高精度のタイムスタンプを生成します。高精度のタイミングが必要ないくつかのシナリオでは、 GetTimeOfdayの使用のマイクロ秒の部分は、Time()関数を使用するよりも正確になります(2番目のレベルの精度のみがあります)。
GetTimeOfdayを使用してプログラムの実行時間を計算する簡単な例を次に示します。
<?php
// 開始時間を取得します
$start_time = gettimeofday();
// いくつかのコードを実行します
usleep(500000); // シミュレーション遅延,遅れ0.52番
// 終了時間を取得します
$end_time = gettimeofday();
// プログラムの実行時間を計算します
$elapsed_sec = $end_time['sec'] - $start_time['sec'];
$elapsed_usec = $end_time['usec'] - $start_time['usec'];
if ($elapsed_usec < 0) {
$elapsed_sec--;
$elapsed_usec += 1000000;
}
echo "プログラムの実行時間: $elapsed_sec 2番 $elapsed_usec 微2番\n";
?>
この例では、 USLoop(500000)がプログラムを0.5秒遅らけます。プログラムの開始時間と終了時間の差を計算することにより、秒およびマイクロ秒を含む、プログラム実行の正確な時間を取得します。
$ as_floatパラメーターがtrueに設定されている場合、 gettimeofdayはフローティングタイプのタイムスタンプを返します。このタイムスタンプには秒数とマイクロ秒の情報が含まれており、形式は次のとおりです。マイクロ秒。
<?php
$time_float = gettimeofday(true);
echo "現在のタイムスタンプ: $time_float\n";
?>
出力結果:
現在のタイムスタンプ: 1627455747.123456
この方法で返されるタイムスタンプは、特に非常に直感的な時差計算を実行する場合、より単純な時間計算に便利です。
GetTimeOfdayは非常に高い精度であり、パフォーマンス分析、タスクスケジューリング、タイマーなど、高精度のタイムスタンプが必要なシナリオに適しています。
この関数によって返されるタイムスタンプは、システムタイムゾーンと夏時間の影響を受けます。タイムゾーンの違いに対処する必要がある場合は、 DateTimeクラスまたはdate_default_timezone_set()を使用してタイムゾーンを設定することをお勧めします。
GetTimeOfday関数は、開発者に高精度のタイムスタンプとそのさまざまなコンポーネントを提供できる非常に実用的なタイムゲット関数です。 GetTimeOfdayは、PHPで正確なタイミング、パフォーマンス分析、時差計算などのシナリオを使用する場合に理想的な選択です。
この記事の導入を通じて、あなたはGetTimeの基本的な使用法とそれを使用して正確な時間情報を取得する方法を学んだと思います。この記事が、実際の開発でこの機能をよりよく活用するのに役立つことを願っています。