我有一个变量$route->flighttime,它回显以下格式的数字...
0.5
1.2
1.45如何使用echo将其转换为显示HH:MM
注:由于某些原因,0.5被内容管理系统视为50分钟。
发布于 2013-01-30 21:23:55
基于OPs关于他的初始时间格式的评论(其中.5实际上是50分钟),这是一个没有任何数学计算的解决方案
$time = floatval($route->flighttime);
echo number_format($time,2,':',null);发布于 2013-01-30 21:05:35
如果输入是小时的浮点值
首先将浮点值转换为小时/分钟:
$hours = floor($route->flighttime);
$minutes = ($route->flighttime - $hours) * 60;如果输入的是小时/分钟对,则将其转换为适合浮点数
您可以乘以100而不是60,或者使用可能更精确的此技术:
list($hours, $minutes) = explode('.', sprintf('%.2F', $route->flighttime));无论如何
然后使用printf (或一些类似的函数,如sprintf)来正确地格式化它:
printf("%02d:%02d", $hours, $minutes);发布于 2013-01-30 21:12:08
我猜0.5意味着半个小时。使用格式为G:i的gmdate,时间以秒为单位:
echo gmdate('G:i', round($x * 3600));https://stackoverflow.com/questions/14604704
复制相似问题