2011-10-20

[PHP] 以活躍指標顯示日期時間

function ShowTimeLive($date) {
    $diff = time() - strtotime($date);
    
    if($diff < 60){
        return $diff.' 秒前';
    }elseif($diff < 3600){
        return round($diff/60).' 分鐘前';
    }elseif($diff < 86400){
        return round($diff/3600).' 小時前';
    }elseif($diff < 432000){
        return round($diff/86400).' 天前';
    }else{/*超過5天*/
        return date('n月j日',strtotime($date));
    }
}

/*demo*/
echo ShowTimeLive('2011-10-13 21:14:42');

[PHP] 使用簡易單位顯示檔案大小

function ShowBytes($size) {
    $size=doubleval($size);
    $sizes = array(
        " Bytes", 
        " KB", 
        " MB", 
        " GB", 
        " TB"
    );
    if ($size == 0) { 
        return('n/a'); 
    } else {
        $i = floor( log($size, 1024) );
        return (round( $size/pow(1024, $i), 2) . $sizes[$i]); 
    }
}

/*demo*/
for($size=0; $size<3000000; $size+=512) {
    echo $size,' => ', ShowBytes($size),'<br />';
}
/*
0 => n/a
512 => 512 Bytes
1024 => 1 KB
1536 => 1.5 KB
2048 => 2 KB
2560 => 2.5 KB
3072 => 3 KB
3584 => 3.5 KB
*/

[PHP] 格式化單位秒數

只要將秒數減去 28800 之後,丟進 date() 就OK了,不過只能顯示到小時,至於要有天數的部分就不能這樣做了,只能用在一些短時間的顯示。

for($sec=0; $sec<30000; $sec+=30) {
    echo $sec,' => ', date('H:i:s',$sec-28800),'<br />';
}
/*
0 => 00:00:00
30 => 00:00:30
60 => 00:01:00
90 => 00:01:30
120 => 00:02:00
150 => 00:02:30
180 => 00:03:00
*/