繁体   English   中英

将时间戳转换为时间,并保留秒,分钟和小时

[英]Convert timestamp to time and keep seconds, minutes and hour

我有一个将时间戳转换为真实的小时,分​​钟和秒的函数,我将保留以下格式:hh:mm:ss即使只有几分钟和几秒钟,我也应该得到00:10:32而不是10: 32:

// format can be either : or blank
function toTime($timestamp, $format)
{
    $hours = floor($timestamp / 3600);
    $minutes = floor($timestamp % 3600 / 60);
    $seconds = $timestamp % 60;

            if($format == ':') {
                $hourDuration = sprintf('%02d:', $hours);
                //echo 'hour: '.$hourDuration.'<br />';
                $minDuration =  sprintf('%02d:', $minutes);
                //echo 'min: '.$minDuration.'<br />';
                $secDuration =  sprintf('%02d', $seconds);
                //echo 'sec: '.$secDuration.'<br />';
                $HourMinSec = $hourDuration.$minDuration.$secDuration;
            } else {
                $hourDuration = sprintf('%02d h', $hours);
                //echo 'hour: '.$hourDuration.'<br />';
                $minDuration =  sprintf('%02d m', $minutes);
                //echo 'min: '.$minDuration.'<br />';
                $secDuration =  sprintf('%02d s', $seconds);
                //echo 'sec: '.$secDuration.'<br />';
                $HourMinSec = '';
            }

            if($hourDuration > 0){
                $hourDuration = $hourDuration;
            } else {
                $hourDuration = '';
            }

            if($minDuration > 0){
                $minDuration = $minDuration;
            } else {
                $minDuration = '';
            }

            if($secDuration > 0){
                $secDuration = $secDuration;
            } else {
                $secDuration = '';
            }

    //$HourMinSec = $hourDuration.'&nbsp;'.$minDuration.'&nbsp;'.$secDuration;
    $HourMinSec = $hourDuration.$minDuration.$secDuration;

    return $HourMinSec;
}

此功能用于获取视频时间戳,例如:1508.7397460938,我想弄清楚该视频中有几小时,几分和几秒

谢谢你的协助

我会那样做

function toTime($timestamp, $format)
    {
        $hours = floor($timestamp / 3600);
        $minutes = floor($timestamp % 3600 / 60);
        $seconds = $timestamp % 60;

                if($format == ':') {
                    $hourDuration = sprintf('%02d:', $hours);
                    //echo 'hour: '.$hourDuration.'<br />';
                    $minDuration =  sprintf('%02d:', $minutes);
                    //echo 'min: '.$minDuration.'<br />';
                    $secDuration =  sprintf('%02d', $seconds);
                    //echo 'sec: '.$secDuration.'<br />';
                    $HourMinSec = $hourDuration.$minDuration.$secDuration;
                } else {
                    $hourDuration = sprintf('%02d h', $hours);
                    //echo 'hour: '.$hourDuration.'<br />';
                    $minDuration =  sprintf('%02d m', $minutes);
                    //echo 'min: '.$minDuration.'<br />';
                    $secDuration =  sprintf('%02d s', $seconds);
                    //echo 'sec: '.$secDuration.'<br />';
                    $HourMinSec = '';
                }

                if($hourDuration > 0){
                    $hourDuration = $hourDuration;
                } else {
                    $hourDuration = ($format == ':' ? '00:' : '00 h');
                }

                if($minDuration > 0){
                    $minDuration = $minDuration;
                } else {
                    $minDuration = ($format == ':' ? '00:' : '00 m');
                }

                if($secDuration > 0){
                    $secDuration = $secDuration;
                } else {
                    $secDuration = '00';
                }

        //$HourMinSec = $hourDuration.'&nbsp;'.$minDuration.'&nbsp;'.$secDuration;
        $HourMinSec = $hourDuration.$minDuration.$secDuration;

        return $HourMinSec;
    }

在这种情况下,将为您带来以下添加结果

echo toTime(1508.7397460938);
Output --> 00 h25 m08 s
echo toTime(1508.7397460938,':');
Output --> 00:25:08

另一个变体是通过键入以下命令使用php ready函数gmdate:

echo gmdate("H:i:s", 1508.7397460938);

//仅当小时数少于24小时时才使用该函数,该函数现在将显示超过24小时,如果这样,它将显示不正确的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM