php将秒转换为分钟:仅秒

时间:2016-01-27 06:06:20

标签: php date format

我正在使用此功能将秒转换为分钟:

function convert($iSeconds)
{
    return date('i:s', mktime(0, 0, $iSeconds));
}

效果很好。但是如果我使用这段代码:

echo convert(3605);

返回 00:05 。但我需要像这样回来: 60:05

我如何格式化 MINUTES:SECONDS ???

3 个答案:

答案 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

Fiddle

答案 2 :(得分:0)

根据mktime的文档,minute

  

相对于小时开始的分钟数。负值表示前一小时的分钟。值   大于59参考下面的适当分钟   小时)。

对于second

  

相对于分钟开始的秒数。负值参考前一分钟的秒。值   大于59,参考下面的适当秒   分钟。

当您致电mktime时,您将小时和分钟的值都传递给0; 3605秒,你基本上是&#34;旋转&#34; seconds手上的时间为3600/60次,然后你加上5秒钟。

因此,您必须首先手动计算分钟数的正确值,以及您指定的秒数所需的小时数。

为此,您需要使用该部门的modintval

以非常教育的形式,你有类似的东西:

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));
}

https://eval.in/508531

实际上,这并不能直接解决OP,因为分钟数可以是任意大小。如上所述,mktime不能用于实现这一点,因为它总是会格式化一个正确的&#34;时间值,其中分钟和秒数是0-59之间的数字。