PHP秒的秒:SS函数

时间:2018-04-20 08:09:37

标签: php function

目前我使用以下javascript函数将秒数转换为分钟和秒。

function fmtMSS(s){return(s-(s%=60))/60+(9<s?':':':0')+s}

如果我将其传递235,则返回3:55

我已经尝试将其转换为php,但是将其转换为235,我得到55

我做错了什么?

function fmtMSS($s){
        return($s-($s%=60))/60+(9<$s?':':':0')+$s;
    };
    echo fmtMSS(235);

感谢。

3 个答案:

答案 0 :(得分:1)

PHP版本中的逻辑部分错误。看看这个:

function fmtMSS($s){
    return(($s-($s%60))/60).(9<$s?':':':0').$s%60;
};
echo fmtMSS(235);

沙箱:http://sandbox.onlinephpfunctions.com/code/163b767d435cf9db9058d03e95b873fb07e3fcbd

答案 1 :(得分:1)

没有理由在单行中进行,除非它是最容易和最易读的方式。不要为了缩短代码而牺牲可读代码。

以下功能是将秒转换为minute:seconds格式的最简单,最简单的方法。不使用date("H:i", $s)(会产生相同结果)的原因是它不能很好地扩展,如果$s变高,则返回错误的结果。

除以60,将它打开 - 这将为您提供分钟。将它乘以60并从$s中减去它,你就有了秒数。

function fmtMSS($s){
    $minutes = floor($s/60); 
    $seconds = $s-$minutes*60; 
    return "$minutes:$seconds";
};
echo fmtMSS(235); // 3:55

Live demo

原始代码无法正常工作的原因是因为您正在使用+来加入字符串(就像在JavaScript中一样)。但是,在PHP中,使用.来联系两个字符串。逻辑也似乎有点不正确。

答案 2 :(得分:0)

<?php 
function fmtMSS($s){
    $min = floor($s/60);        
    $sec = $s%60;
    return $min.':'.$sec;
};
echo fmtMSS(235);
?>

使用此代码 - 我刚刚编辑了您的功能。

简称: - echo gmdate(“i:s”,235);