B、KB、MB、GB、TB
/**
* @param string $size 转换大小 B 字节
* @param int $precision 保留小数点后位数
* @return string
*/
public function formatBytes($size, $precision = 2)
{
// 0 或 null
if ($size === 0 || $size === null) {
return "0B";
}
// $sign 正负符号
$sign = $size < 0 ? '-' : '';
$size = abs($size); // 取绝对值
// 取log
$base = log($size) / log(1024);
// 大小单位
$suffixes = array('B', 'KB', 'MB', 'GB', 'TB');
// round 四舍五入,$precision 保留小数位数
// pow(1024, $base - floor($base))
// $suffixes[floor($base)] 单位
return $sign . round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];
}
s、ms、us
/**
* @param float $seconds 秒
* @return string
*/
public function formatDuration($seconds)
{
if ($seconds < 0.001) {
// 微秒 1s = 1000ms = 1000000us
return round($seconds * 1000000) . 'μs';
} elseif ($seconds < 1) {
// 毫秒 1s = 1000ms
return round($seconds * 1000, 2) . 'ms';
}
// s
return round($seconds, 2) . 's';
}
网友评论