从双数据类型转换为秒

时间:2013-12-05 07:04:05

标签: php time

我想问一下这种双数据类型可以转换成秒吗?

在我的数据库中,记录为6.80表示6为小时,80为分钟。我希望输出为7 hours and 20 minutes。这可能吗?

4 个答案:

答案 0 :(得分:2)

做OOP方式..!

对于12小时格式。

<?php
$dt='6.80';
$date = DateTime::createFromFormat('H.i', $dt);
echo $date->format('g')." hours and ".$date->format('i')." minutes";

<强>输出:

7 hours and 20 minutes

对于24小时格式。

<?php
$dt='23.75';
$date = DateTime::createFromFormat('H.i', $dt);
$var= ($date->format('G')==0)?'00':$date->format('G');
echo $var." hours and ".$date->format('i')." minutes";

<强>输出:

00 hours and 15 minutes

答案 1 :(得分:1)

示例:

$t=6.80;    
$s = $t - floor($t);
if($s>.60)
{
    $t = $t -$s;
    $t++;
    $s=$s-.60;
    $t=$t+$s;
}

floor()函数用于获取浮点数的小数部分。

答案 2 :(得分:0)

试试这个

    $str = "6.80";
    $str = explode(".",$str);
    $min = $str[0]*60 + $str[1];
    $sec = $min*60;
    echo date("H:i",$sec);
    (Or)
    $hour = intval($min/60);
    $mins = $min%60;

    echo  "$hour:$mins";

答案 3 :(得分:0)

这是另一种方式:

<?php
    $time = '9.102';
    $tmp_min = strstr($time, '.');
    $tmp_hour = strstr($time, '.', true);
    $pos = strpos($time, '.');
    $str_mins = substr($time, $pos+1);
    $min = (int) ($str_mins);
    if ( $min > 60 ) {
        $ext_hour = floor($min/60);
        $final_min = $min%60;
        $final_hour = (int) ($tmp_hour + $ext_hour);
        echo $final_hour . ' Hours and ' . $final_min . ' Minuts..';
        }
    else {
        $final_hour = (int) ($tmp_hour);
        $final_min = $min;  
        echo $final_hour . ' Hours and ' . $final_min . ' Minuts..';
    }
?>