目前我使用以下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);
感谢。
答案 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
原始代码无法正常工作的原因是因为您正在使用+
来加入字符串(就像在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);