2013年10月27日 星期日

[PHP]利用IF-ELSE將秒數自動轉換成小時分鐘秒

在處理時間性資料(time-dependent)時,
有時候外部傳來的時間格式只有秒,如8590秒,
或如time()回傳的時間戳,
為方便進一步使用時間變項或顯示給user,因此常需要做時間的轉換,
其實PHP提供有date(),gmstrftime()等時間處理函數,
這邊隨手記錄下,實作此類function的筆記!
<?php
//將秒數自動轉換成小時分鐘秒
//Convert secs to string of day hours and mins
function convertSecToStr($secs) {
    if($secs >= 86400) {
        $days = floor($secs / 86400);
        $secs = $secs%86400;
        $r .= $days.' day';
  
    if($days <> 1) {
        $r .= 's';
    }
    if($secs > 0) {
        $r .= ', ';
    }
}
 
    if($secs >= 3600) {
        $hours = floor($secs / 3600);
        $secs = $secs%3600;
        $r .= $hours.' hour';
    if($hours <> 1) {
        $r .= 's';
    }
    if($secs > 0) {
        $r .= ', ';
    }
}
 
    if($secs >= 60) {
        $minutes = floor($secs / 60);
        $secs = $secs%60;
        $r .= $minutes.' minute';
    if($minutes <> 1) {
        $r .= 's';
    }
    if($secs > 0) {
        $r .= ', ';
    }
}
 
    $r .= $secs.' second';
    if($secs <> 1) {
        $r .= 's';
    }
    return $r;
}

$a = '979346';
$string = convertSecToStr($a);
echo "{$a} is equal to {$string}";
?>

沒有留言:

張貼留言