在我的方法中不同地方輸出 microtime() 結果顯示時間一樣
伺服器資訊
在我的方法中不同地方輸出 microtime() 結果顯示時間一樣
伺服器資訊
microtime又不是unique,誰規定它不能輸出一樣的時間了?
註:PHP的microtime直接採用了系統中gettimeofday函數的結果進行輸出,沒有進過任何快取處理,如果結果一樣,這鍋PHP也不背。
PHP 5.3.28 中 microtime 的實作
<code>static void _php_gettimeofday(INTERNAL_FUNCTION_PARAMETERS, int mode) { zend_bool get_as_float = 0; struct timeval tp = {0}; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &get_as_float) == FAILURE) { return; } if (gettimeofday(&tp, NULL)) { RETURN_FALSE; } if (get_as_float) { RETURN_DOUBLE((double)(tp.tv_sec + tp.tv_usec / MICRO_IN_SEC)); } if (mode) { timelib_time_offset *offset; offset = timelib_get_time_zone_info(tp.tv_sec, get_timezone_info(TSRMLS_C)); array_init(return_value); add_assoc_long(return_value, "sec", tp.tv_sec); add_assoc_long(return_value, "usec", tp.tv_usec); add_assoc_long(return_value, "minuteswest", -offset->offset / SEC_IN_MIN); add_assoc_long(return_value, "dsttime", offset->is_dst); timelib_time_offset_dtor(offset); } else { char ret[100]; snprintf(ret, 100, "%.8F %ld", tp.tv_usec / MICRO_IN_SEC, tp.tv_sec); RETURN_STRING(ret, 1); } }</code>
微秒本來就是這樣,記得老師講過關於php演算法精確的問題,它還是有誤差的,具體的還是請樓下大神解答吧
echo microtime();
sleep(1);
echo microtime();
?>