时间转换为浮动

时间:2014-06-24 15:34:04

标签: php

我编写代码来转换时间的浮点值并将其转换为小时和分钟。如果输入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

4 个答案:

答案 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