首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP gettimeofday() 取得含微秒的當前時間關聯陣列

     編輯:PHP 綜合知識

前言

gettimeofday() 回傳包含秒數與微秒數的關聯陣列,精度達微秒級,適合效能測量、日誌時間戳、高精度計時場景。

語法

array gettimeofday(bool $return_float = false)
  • $return_float = false(預設):回傳關聯陣列。
  • $return_float = true:回傳 float 秒數(含微秒小數)。

回傳陣列結構

鍵名說明範例
sec自 1970-01-01 秒數1261918156
usec微秒部分 (0-999999)724964
minuteswest時區偏移分鐘數(UTC 以西為正)0
dsttime夏令時修正類型 (0/1)0

使用範例

<?php
$now = gettimeofday();
echo "關聯陣列模式:\n";
foreach ($now as $k => $v) {
    echo "$k => $v\n";
}

/* 輸出:
sec => 1261918156
usec => 724964
minuteswest => 0
dsttime => 0
*/

// 浮點數模式(直接得 Unix 時間戳含微秒)
$float = gettimeofday(true);
echo "Float: $float\n"; // 1261918156.724964
?>

實務:高精度計時

$start = gettimeofday(true);
// 執行耗時操作
usleep(123456);
$end = gettimeofday(true);
echo "耗時: " . ($end - $start) * 1000 . " ms\n"; // 約 123.456 ms

與 microtime() 比較

函數回傳類型精度適用場景
microtime(true)float 秒微秒通用高精度計時、效能分析
gettimeofday(true)float 秒微秒同 microtime,語意更明確
gettimeofday()關聯陣列微秒需分離秒/微秒、時區資訊
hrtime() (PHP 7.3+)奈秒 (int/array)奈秒極高精度基準測試、避免系統時間調整影響

結語

gettimeofday() 提供微秒級時間與時區資訊,是 microtime() 的補完。現代 PHP (7.3+) 建議優先使用 hrtime() 進行基準測試,避免 NTP 調整系統時間造成負數間隔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved