如何按時間格式從數據庫中查詢小數。php - 計算按時間劃分的距離
有什麼想法?
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time
這是絕對錯誤的,如果我的時間是00:40:00,我得到一些除零誤差。
我無法將其轉換爲秒,因爲php從數據庫中的時間格式中獲取DateTime。
如何按時間格式從數據庫中查詢小數。php - 計算按時間劃分的距離
有什麼想法?
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time
這是絕對錯誤的,如果我的時間是00:40:00,我得到一些除零誤差。
我無法將其轉換爲秒,因爲php從數據庫中的時間格式中獲取DateTime。
我建議你得到你的時間(秒),但你需要分鐘和小時轉換爲秒。
$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;
感謝隊友。我想分享這種格式('H')假設是幾小時上限。如我錯了請糾正我。從KM/S轉換到KM/H,乘以* 3600的速度。再一次,謝謝! – vinz 2013-05-10 10:25:27
結帳strtotime()將其轉換爲秒。
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)
隨着strtotime
是有點棘手,只有去24:59:59
。 其他使用Voitcus解決方案。
$time = '00:40:00';
echo strtotime("1970-01-01 $time UTC");
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time
這是錯誤的。你必須做到:
$speed = $distance/$time * 3.6;
例如這個等式成立30km/H = 30000m * 3600 seconds * 3.6
究竟什麼是「從數據庫中查詢時間」?你爲什麼說你的方法(請顯示它)是「一場災難」? – Voitcus 2013-05-10 10:06:04
顯示您的代碼。 – 2013-05-10 10:06:10