0

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

任何想法?

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

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

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

4

5 回答 5

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;
于 2013-05-10T10:15:13.797 回答
0

签出 strtotime() 以将其转换为秒。

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

于 2013-05-10T10:12:52.787 回答
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)

于 2013-05-10T10:25:51.440 回答
0

有了strtotime它有点棘手,只去24:59:59. 否则使用 Voitcus 溶液。

$time = '00:40:00';
echo strtotime("1970-01-01 $time UTC");
于 2013-05-10T10:28:30.243 回答
0
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time

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

$speed = $distance/$time * 3.6;

例如这个等式是有效的30km/H = 30000m * 3600 seconds * 3.6

于 2014-05-27T11:52:38.350 回答