php - 计算距离除以时间

时间:2013-05-10 10:04:57

标签: php performance average

如何将从数据库中查询的时间除以时间格式。

有什么想法吗?

$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time

这绝对是错误的,如果我的时间是00:40:00,我会得到一些除零错误。

我无法将其转换为秒,因为php从数据库中的时间格式中获取DateTime。

5 个答案:

答案 0 :(得分:2)

我建议您在几秒钟内获得时间,但您需要将分钟和小时转换为秒。

$seconds = date($entity->getTime()->format('s'));
$minutes = date($entity->getTime()->format('i'));
$hours = date($entity->getTime()->format('h'));
$time = $hours * 3600 + $minutes * 60 + $seconds;
$speed = $distance/$time;

答案 1 :(得分:0)

Checkout strtotime()将其转换为秒。

文档:http://php.net/manual/en/function.strtotime.php

答案 2 :(得分:0)

1)在几秒钟内获得时间

function time2seconds($time='00:00:00')
{
    list($hours, $mins, $secs) = explode(':', $time);
    return ($hours * 3600 ) + ($mins * 60 ) + $secs;
}

$time = date($entity->getTime()->format('H:i:s'));
$timeInSeconds = time2seconds($time);
$distance = 40000;
$speed = $distance/$timeInSeconds;

2)如果您使用的是MySQL数据库使用功能 TIME_TO_SEC(time)

答案 3 :(得分:0)

使用strtotime它有点棘手,只能转到24:59:59。 否则使用Voitcus解决方案。

$time = '00:40:00';
echo strtotime("1970-01-01 $time UTC");

答案 4 :(得分:0)

$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time

这是错的。你必须这样做:

$speed = $distance/$time * 3.6;

例如,此等式有效30km/H = 30000m * 3600 seconds * 3.6