我编写代码来转换时间的浮点值并将其转换为小时和分钟。如果输入2.5,它将返回2:30(2小时30分钟)。
$input = '2:5';
$num_hours=str_replace(":",".",$input,$num_hours) ;
$hours = floor($num_hours);
$mins = round(($num_hours - $hours) * 60);
echo $hour_one = $hours.'.'.$mins;
但现在我要反转它:如果输入2:30
,它应该返回2.5
。
答案 0 :(得分:1)
您可以使用模%
运算符进行第一次操作:
$value = 2.5;
echo floor($value) . ':' . (($value * 60) % 60);
输出:
2:30
要将它们转换回来,您可以使用:
$value = "2:30";
$parts = explode(':', $value);
echo $parts[0] + floor(($parts[1]/60)*100) / 100 . PHP_EOL;
2.5
作为我们可以使用的功能:
function hours_tofloat($val){
if (empty($val)) {
return 0;
}
$parts = explode(':', $val);
return $parts[0] + floor(($parts[1]/60)*100) / 100;
}
答案 1 :(得分:1)
list($hours, $minutes) = explode(':', $input);
echo $hours . '.' . $minutes / 60 * 100;
答案 2 :(得分:0)
我认为这是你的答案,试试这个
<?php
$str = str_replace(":", ".", "2:5");
$float_value = floatval($str); // this Line Convertit une chaîne en nombre à virgule flottante
echo $float_value;
?>
答案 3 :(得分:0)
function getPartialTime($sTime)
{
$aTime = explode(':', $sTime);
if (isset($aTime[1]) {
$iPart = round($aTime[1]*100/60);
} else {
$iPart = 0;
}
return $aTime[0].'.'.$iPart;
}
这将返回getPartialTime(&#39; 2:30&#39;)=&gt; 2.5