【问题标题】:php convert seconds to minutes:seconds only [duplicate]php将秒转换为分钟:仅秒[重复]
【发布时间】:2016-05-03 23:12:33
【问题描述】:

我正在使用这个函数将秒转换为分钟:

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

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

echo convert(3605);

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

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

【问题讨论】:

  • 我很确定如果您将格式更改为"H:i:s",它将是1:00:05。我认为您必须通过不使用 date 函数来手动将小时转换为分钟。例如,如果你给定的是7210
  • 转换(3605);如果您尝试 convert(600500); 则在这里插入毫秒而不是秒;然后你可以看到

标签: php date format


【解决方案1】:

您不能将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】:

    您不能使用日期转换功能,因为它不接受大于 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;
    }
    

    【讨论】:

      【解决方案3】:

      根据mktime的文档,对于minute

      相对于小时开始的分钟数。负值引用前一小时中的分钟。价值观 大于 59 参考下面的适当分钟 小时)。

      对于second

      相对于分钟开始的秒数。负值引用前一分钟的秒数。价值观 大于 59 参考下面相应的秒 分钟。

      当您调用mktime 时,您传递的小时和分钟值均为0;在 3605 秒内,您基本上是在时钟上“旋转”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 不能用于实现此目的,因为它始终会格式化一个“正确”的时间值,其中分钟和秒是 0-59 之间的数字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-17
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多