PHP实现 流量/文件/秒 自动单位自动换算
目标要求: 把 流量/文件 的B转换成KB、MB、GB、TB,把 时间戳 的秒转换成分、小时、天的单位。
简单正常的新手直接就是if语句判断,然后一下一下的除,这里有个简单快捷的适用于流量/文件的B单位自动转换最大至TB并保留两位小数的方法:
function automatic_transfer($data)
{
$units = [' B',' KB',' MB', ' GB', ' TB'];
for ($i = 0; $data >= 1024 && $i < 4; $i++) $data /= 1024;
return round($data, 2).$units[$i];
}
时间戳是个好东西,以下来实现秒的自动转换:
function automatic_time($time=0){
if ($time > 0) {
$t = "";
if ($time >= 86400) {
$day = floor($time/86400);
$t .= "$day 天";
$time -= $day * 86400;
}
if ($time >= 3600) {
$hour = floor($time/3600);
$t .= "$hour 时";
$time -= $hour * 3600;
}
if ($time >= 60) {
$min = floor($time/60);
$t .= "$min 分";
$time -= $min * 60;
}
if ($time >= 0) {
$t .= "$time 秒";
}
return $t;
}
return "一秒都没有";
}