从数据库中获取时间时,我得到零时间结果。我想删除所有不必要的零,只留下小时和分钟的数字。
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
答案 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;
}
我确实想警告你,如果除了你自己以外的任何人都会看到这个问题,你会让访问者感到困惑。显示分钟和秒钟看起来就像它的小时和分钟,除非你正在做某种倒计时器,它会经常更新以显示它的秒数。