目标要求: 把 流量/文件 的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 "一秒都没有";
}

标签: PHP

添加新评论

Loading...
Fullscreen Image