从时间上删除零

时间:2018-05-21 19:44:45

标签: php

从数据库中获取时间时,我得到零时间结果。我想删除所有不必要的零,只留下小时和分钟的数字。

00:03:56 --> 3:56
01:45:11 --> 1:45:11
00:00:24 --> 0:24

有没有以这种方式格式化时间的功能?我正在看php.net,却一无所获。

解决

function get_duration($time){
    list($h, $m, $s) = explode(':', $time);
    if ($h==00){
        $h = '';
        if (substr($m, 0, 1)==0){
            $m = substr($m, 1, 1).':';
        }else{
            $m.= ':';
        }
    }else{
        if (substr($h, 0, 1)==0){
            $h = substr($h, 1, 1).':';
        }
        $m.=':';
    }
    return $h.$m.$s;                      
}

echo get_duration('00:03:56');
//return 3:56

1 个答案:

答案 0 :(得分:0)

它并没有完全符合您的要求,但它很容易制作。这是一个简单的例子。

// $time = "00:03:16"
$time = date("H:i:s", strtotime("2018-05-21 00:03:16"));

// This Outputs: 3:16
echo formatTime($time);

/*
 * Our formatting function.
 */

function formatTime($time)
{
    list($h, $m, $s) = explode(":", $time);
    return ((int) $h > 0 ? (int) $h . ":" : "") . (int) $m . ":" . (int) $s;
}

我确实想警告你,如果除了你自己以外的任何人都会看到这个问题,你会让访问者感到困惑。显示分钟和秒钟看起来就像它的小时和分钟,除非你正在做某种倒计时器,它会经常更新以显示它的秒数。