【问题标题】:How to convert minutes to hours and minutes (without days) [duplicate]如何将分钟转换为小时和分钟(没有天)[重复]
【发布时间】:2014-09-06 19:09:05
【问题描述】:

我想以小时和分钟的形式显示时间。

示例 1:我想将 125 分钟显示为 2:05

我知道我可以这样想:

$minutes=125;
$converted_time = date('H:i', mktime(0,$minutes);

这很好用,但如果时间超过 24 小时,那就有问题了。

示例 2:

$minutes=1510;

我想收到 25:10(没有天数),只有几小时和几分钟。

怎么做?

【问题讨论】:

  • date 函数对您没有帮助,因为您没有使用日期!这是一个琐碎的手动操作,主要涉及/60 操作。
  • 请在发布新问题之前尝试做一个简短的搜索..

标签: php date time data-conversion


【解决方案1】:

你可以使用:

$minutes=1510;

$hours = intdiv($minutes, 60).':'. ($minutes % 60);

!!!这个only works 带有 php >= v7.xx

上一个答案:

$minutes=1510;

$hours = floor($minutes / 60).':'.($minutes -   floor($minutes / 60) * 60);

【讨论】:

  • $hours = floor($minutes / 60).':'.($minutes % 60);
  • 但这里缺少一些东西。你的答案是正确的,但不是时间格式。我的意思是你的答案是 8:60 或 9:01 或 9:10。这里小时值是单个值。如果它像这样以 09:23 的形式出现会更好。我在这里发布了我的解决方案,你可以检查一下。
  • 检查我的解决方案,$minutes=$item['time_diff']; $hours = sprintf('%02d',intdiv($minutes, 60)) .':'. ( sprintf('%02d',$minutes % 60));
  • 当分钟是个位数时,这个答案提供的解决方案没有意义。例如:67 分钟,它返回:1:7。相反,它应该是1:07。请包含sprintf 的格式以更正答案。
【解决方案2】:

就这么简单。

$minutes = 125;

$hours = floor($minutes / 60);
$min = $minutes - ($hours * 60);

echo $hours.":".$min;

编辑:应该使用 floor() 而不是 round() 以获得正确的结果。

【讨论】:

    【解决方案3】:
    $hours = floor($minutes / 60); // Get the number of whole hours
    $minutes = $minutes % 60; // Get the remainder of the hours
    
    printf ("%d:%02d", $hours, $minutes); // Format it as hours:minutes where minutes is 2 digits
    

    【讨论】:

      猜你喜欢
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      相关资源
      最近更新 更多