我正在使用此功能将秒转换为分钟:
function convert($iSeconds)
{
return date('i:s', mktime(0, 0, $iSeconds));
}
效果很好。但是如果我使用这段代码:
echo convert(3605);
返回 00:05 。但我需要像这样回来: 60:05
我如何格式化 MINUTES:SECONDS ???
答案 0 :(得分:0)
您不能使用日期转换功能,因为它不接受分钟> 60小时> 24。
最简单的方法是使用此功能:
function convert($iSeconds)
{
$numMinutes = $iSeconds/60;
$numSeconds = $iSeconds - ($numMinutes * 60);
$numMinutes = $numMinutes."";
$numSeconds = $numSeconds."";
if (strlen($numMinutes) == 1)
$numMinutes = "0".$numMinutes;
if (strlen($numSeconds) == 1)
$numSeconds = "0".$numSeconds;
return $numMinutes.":".$numSeconds;
}
答案 1 :(得分:0)
您不能将mktime()
或strtotime()
用于此类版本。您可以手动计算。你可以试试这个 -
function convert($iSeconds)
{
$min = intval($iSeconds / 60);
return $min . ':' . str_pad(($iSeconds % 60), 2, '0', STR_PAD_LEFT);
}
echo convert(7205);
<强>输出强>
120:05
答案 2 :(得分:0)
根据mktime
的文档,minute
:
相对于小时开始的分钟数。负值表示前一小时的分钟。值 大于59参考下面的适当分钟 小时)。
对于second
:
相对于分钟开始的秒数。负值参考前一分钟的秒。值 大于59,参考下面的适当秒 分钟。
当您致电mktime
时,您将小时和分钟的值都传递给0; 3605秒,你基本上是&#34;旋转&#34; seconds
手上的时间为3600/60次,然后你加上5秒钟。
因此,您必须首先手动计算分钟数的正确值,以及您指定的秒数所需的小时数。
为此,您需要使用该部门的mod
和intval
。
以非常教育的形式,你有类似的东西:
function convert($iSeconds) {
$seconds = $iSeconds % 60;
$minutes = intval($iSeconds/60);
$hours = intval($minutes/60);
$minutes = $minutes % 60;
return date('H:i:s', mktime($hours, $minutes, $seconds));
}
实际上,这并不能直接解决OP,因为分钟数可以是任意大小。如上所述,mktime
不能用于实现这一点,因为它总是会格式化一个正确的&#34;时间值,其中分钟和秒数是0-59之间的数字。