PHP时间字符串格式为整数小时数

时间:2018-01-15 14:57:43

标签: php time format

我以数据格式(例如

)获取从DB传递的时间的汇总值
 "84:00:00"
 "14:30:00"
 "20:00:00"
 "02:00:00"
"120:00:00"

我需要将其转换为整数值,如下所示:

 84
 14.5
 20
  2
120

有没有办法实现这一目标(相当简单);据我所知strtotime()如果值大于24:00:00

则返回false

3 个答案:

答案 0 :(得分:0)

解决方案(感谢@deceze):

if($time != '0') {
    list($hours, $minutes) = explode(':', $time);
    return $hours + ($minutes / 60);
}
return 0;

答案 1 :(得分:0)

您可以使用TimeToSec()功能,然后只需将秒数设为3600,您将获得小时数。

function TimeToSec($time) {
    $sec = 0;
    foreach (array_reverse(explode(':', $time)) as $k => $v) $sec += pow(60, $k) * $v;
    return $sec;
}

echo TimeToSec('14:30:00') / 3600;

demo

答案 2 :(得分:-2)

  

PHP的时间函数对你没什么帮助,因为你处理的是持续时间,而不是时间戳

@deceze,你错了:

foreach (['84:00:00', '14:30:00', '20:00:00', '02:00:00', '120:00:00'] as $time)
{
    list($h, $m, $s) = explode(':', $time);

    $diff = mktime($h, $m, $s) - mktime(0, 0, 0);

    print_r($diff / 60 / 60);
}