PHP——秒数转换为时分秒

2024-08-16 11:12:06 浏览数 (2)

前言

通讯记录需要用到的一个方法,就是将秒转为时分秒

方法

PHP有内置的方法,直接用即可,不过这个只是24小时以内。对于通讯录来说是够用了~

示例

代码语言:javascript复制
$v = 30;
gmdate('H:i:s', $v); //00:00:30

如果要改成XX时XX分XX秒这种格式只要转化下就可以了,我这里直接用三元嵌套了

代码语言:javascript复制
/**
     * 处理时间
     * 
     * @param string $s 转化好的时间
     * 
     * @return string $ftime 处理好的时间
     */
    public function ftime($s)
    {
        $time = explode(':', $s);
        $time['0'] == '00' ? $h = 0 : $h = $time['0'];
        $time['1'] == '00' ? $m = 0 : $m = $time['1'];
        $time['2'] == '00' ? $s = 0 : $s = $time['2'];
        $ftime = (
        empty($h) ? (
            empty($m) ? $s .'秒' : (
                empty($s) ? $m . '分' : $m . '分' . $s .'秒'
                )
            ) :(
            empty($m) && empty($s) ? $h .'小时' : (
                empty($m)  ? $h . '时' . $s . '秒' : (
                    empty($s) ? $h . '小时' . $m . '分' : $h . '小时' . $m . '分' .$s . '秒'
                )
                    )
                        )
        );
        return $ftime;
    }

效果图

但是这个只是24小时以内的,虽然对通讯录够用了,但是对于如果下次需要一个显示天的呢?所以接下来重新写个方法。

代码语言:javascript复制
/**
 * 秒转换为天,小时,分钟
 * 
 * @param int $second 时间戳
 * 
 * @return string
 */
function secondChanage($second = 0)
{
    $newtime = '';
    $d = floor($second / (3600*24));
    $h = floor(($second % (3600*24)) / 3600);
    $m = floor((($second % (3600*24)) % 3600) / 60);
    $s = $second - ($d*24*3600) - ($h*3600) - ($m*60);

    empty($d) ?  
    $newtime = (
            empty($h) ? (
                empty($m) ? $s . '秒' : ( 
                    empty($s) ? $m.'分' :  $m.'分'.$s.'秒'
                    )
                ) : (
                empty($m) && empty($s) ? $h . '时' : (
                    empty($m) ? $h . '时' . $s . '秒' : (
                        empty($s) ? $h . '时' . $m . '分' : $h . '时' . $m . '分' . $s . '秒'
                        )
                )
            )
    ) : $newtime = (
        empty($h) && empty($m) && empty($s) ? $d . '天' : (
            empty($h) && empty($m) ? $d . '天' . $s .'秒' : (
                empty($h) && empty($s) ? $d . '天' . $m .'分' : (
                    empty($m) && empty($s) ? $d . '天' .$h . '时' : (
                        empty($h) ? $d . '天' .$m . '分' . $s .'秒' : (
                            empty($m) ? $d . '天' .$h . '时' . $s .'秒' : (
                                empty($s) ? $d . '天' .$h . '时' . $m .'分' : $d . '天' .$h . '时' . $m .'分' . $s . '秒'
                            )
                        )
                    )
                )
            )
        )
    );
 
    return $newtime;
  
}

0 人点赞