Php 将分钟转换为小时和分钟

Php 将分钟转换为小时和分钟,php,date,datetime,Php,Date,Datetime,如何将分钟转换为小时和分钟?例如 $dt = new DateTime(); $currDate = date_format($dt, 'Y-m-d'); $startMinutes = 939; $startT = $currDate . " " . gmdate("H:i", $startMinutes); 此代码返回类似于“2012-09-12 00:15”的内容,而不是15:。。。为什么?试试这个 $d = floor ($startMinutes / 1440); $h = fl

如何将分钟转换为小时和分钟?例如

$dt = new DateTime();
$currDate = date_format($dt, 'Y-m-d');

$startMinutes = 939;

$startT = $currDate . " " . gmdate("H:i", $startMinutes);
此代码返回类似于“2012-09-12 00:15”的内容,而不是15:。。。为什么?

试试这个

$d = floor ($startMinutes / 1440);
$h = floor (($startMinutes - $d * 1440) / 60);
$m = $startMinutes - ($d * 1440) - ($h * 60);

echo "{$startMinutes}min converts to {$d}d {$h}h {$m}m";

您应该能够从那里将其拼合起来。

类似于以下公式的操作应该有效:

$hours  = floor($minutes/60); //round down to nearest minute. 
$minutes = $minutes % 60;
echo date('H:i', strtotime($startMinutes.' minutes'));

这是一种非常快速的方法,应该可以:

$hours  = floor($minutes/60); //round down to nearest minute. 
$minutes = $minutes % 60;
echo date('H:i', strtotime($startMinutes.' minutes'));

date和gmdate函数都将秒作为输入,而不是分钟。所以你所要做的就是把你的开始时间乘以60,得到你的答案

$startT = $currDate . " " . gmdate("H:i", ($startMinutes * 60));
试试这个

function hour_min($minutes){
       if($minutes == 0){return '';}else{
        $hours  = round(intval($minutes/60) , 2); //round down to nearest minute.
        $minutes = $minutes % 60; return sprintf("%02d", $hours).':'.sprintf("%02d", $minutes);
       }
 }
 echo hour_min(720);  // 12:00 
 echo hour_min(480); //  08:00

是的,这就是他想要的,他忘了做的就是把分钟乘以60。你可以在下面看到我的答案。你到底想把939转换成什么?这个问题证明提问者甚至没有阅读或理解他正在使用的函数。939的值意味着从1970年朱利安日期算起939秒,或者时间戳开始的时候算起939秒。时间戳不只是秒,而是从1970年1月1日开始算起的秒数。所以,这是有效的,因为你给它发送的时间戳是56340,也就是1970年1月1日格林威治标准时间15:39。@Rocket correct我同意,但根据他所说的,他正在寻找15:。。如果你使用我的答案,你将从gmdateH得到回复:i,939*60;是15:39,所以我认为这就是为什么我认为这就是他想要的。是的,它输出15:39,但我认为OP想要将939分钟转换为15小时39分钟。我不相信这是真的。他正在创建一个带有日期和时间的字符串。我不确定OP想要什么,我猜。快速和稳定的解决方案,也考虑了小时数>24小时。好的这个答案太好了,不能只投一票。所以我打破规则说:谢谢你还活着,能发布如此优雅的帖子。