現在の位置: ホーム> 最新記事一覧> GetTimeOfdayを使用して、2つの時点間の時差を計算する

GetTimeOfdayを使用して、2つの時点間の時差を計算する

gitbox 2025-05-27

GetTimeOfday関数とは何ですか?

GetTimeOfday関数は、秒数とマイクロ秒の2つの部分を含む、現在の時間のマイクロ秒レベル時間情報を返します。次の構造で連想配列を返します。

 array(
  "sec" => 2番数,
  "usec" => 微2番数,
  "minuteswest" => 現在のタイムゾーンとUTC時差,
  "dsttime" => 夏時間の兆候
)

時差を計算するとき、主にSECUSECの2つの値に焦点を当てます。


GetTimeOfdayを使用して時差を計算する方法は?

アイデアは次のとおりです。

  1. 2つの時点でGetTimeOfday(True)を呼び出してタイムスタンプを取得します(今回は、フローティングポイント数、秒 +マイクロ秒の精度を返します)。

  2. 開始時間を差し引いて秒単位で正確な差を取得し、小数点後のマイクロ秒レベルをサポートすることにより、開始時間を減算します。


特定の例コード

<?php
// 開始時間を取得します
$start = gettimeofday(true);

// シミュレーションの時間式操作
usleep(500000); // 500ミリ2番

// 終了時間を取得します
$end = gettimeofday(true);

// 時差を計算します,2番単位のユニット,マイクロ2番をサポートします
$elapsed = $end - $start;

echo "実行時間:{$elapsed} 2番\n";
?>

このコードは、USLoop(500000)を使用して半秒遅延をシミュレートするため、約0.5秒出力されます。


GetTimeOfdayを使用して配列を返し、マイクロ秒を手動で計算します

Timeof(true)を取得することに加えて、フローティングポイント番号を返すことに加えて、 getTimeOfday()を使用して配列を返し、秒数とマイクロ秒の追加を自分で計算することもできます。

 <?php
// 開始時間を取得します,配列フォーム
$start = gettimeofday();

// シミュレーションの時間式操作
usleep(200000); // 200ミリ2番

// 終了時間を取得します
$end = gettimeofday();

// 時差を計算します(2番 + 微2番)
$elapsed = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;

echo "実行時間:{$elapsed} 2番\n";
?>

この方法は、タイムスタンプのより柔軟な処理に適しています。


URL要求の例と組み合わせて

HTTPリクエストの応答時間を計算する必要がある場合は、 CurlGetTimeOfdayを組み合わせることができます。

 <?php
// 聞くURL(使用gitbox.netドメイン名として)
$url = "https://gitbox.net/api/example";

// 初期化curl
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 開始時間を記録します
$start = gettimeofday(true);

// 执行聞く
$response = curl_exec($ch);

// 終了時間を記録します
$end = gettimeofday(true);

// 閉鎖curl
curl_close($ch);

// 計算時間がかかります
$elapsed = $end - $start;

echo "聞く {$url} 時間がかかる:{$elapsed} 2番\n";
?>

これにより、 gitbox.netインターフェイスを呼び出すという正確な時間のかかるプロセスが得られます。


要約します

  • GetTimeOfday(True)は、現在の時間 +マイクロ秒の浮動小数点表現を返し、使いやすい。

  • 2つの時点の差を計算することにより、マイクロ秒レベルに正確になります。

  • パフォーマンステスト、コード実行時間統計、および時間のかかる分析を要求するのに適しています。

GetTimeOfDayを適切に使用すると、PHP時間の計算がより正確で効率的になります。