2016-11-05 2 views
-2

Как отобразить пример времени 16:00 Есть идеи, как это сделать?php - Получить расстояние между двумя точками с помощью API Карт Google и рассчитать время

function GetDrivingDistance($lat1, $lat2, $long1, $long2) 
     { 
      $url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=".$lat1.",".$long1."&destinations=".$lat2.",".$long2."&mode=driving&language=de"; 
      $ch = curl_init(); 
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
      curl_setopt($ch, CURLOPT_PROXYPORT, 3128); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
      $response = curl_exec($ch); 
      curl_close($ch); 
      $response_a = json_decode($response, true); 
      $dist = $response_a['rows'][0]['elements'][0]['distance']['text']; 
      $time = $response_a['rows'][0]['elements'][0]['duration']['text']; 

     return array('distance' => $dist, 'time' => $time); 
    } 
    //$pickuplocation = 'Herbststrasse 5'; 
    //$droplocation = 'Pastorstrasse 5'; 
    $coordinates1 = get_coordinates('wien', 'Stefan Esders Platz 1', ''); 
    $coordinates2 = get_coordinates('wien', 'Pastorstrasse 1', ''); 
    if (!$coordinates1 || !$coordinates2) 
    { 
     echo 'Bad address.'; 
    } 
    else 
    { 
     $dist = GetDrivingDistance($coordinates1['lat'], $coordinates2['lat'], $coordinates1['long'], $coordinates2['long']); 
     echo 'Entfernung: <b>'.$dist['distance'].'</b><br>Fahrzeit: <b>'.$dist['time'].'</b>'; 
    } 
    ?> 

Entfernung: 662 км Fahrzeit: 6 Stunden, 56 Minuten

Мне нужно отобразить пример времени 6:56 любой может помочь?

ответ

0

Вместо того, чтобы поле «текст» из ответа:

$dist = $response_a['rows'][0]['elements'][0]['distance']['text']; 
$time = $response_a['rows'][0]['elements'][0]['duration']['text']; 

Try значение:

$dist = $response_a['rows'][0]['elements'][0]['distance']['text']; 
$time = $response_a['rows'][0]['elements'][0]['duration']['value']; 

То есть общее количество секунд, сделать математику на это, и вы можете отформатируйте его, как вам угодно.

$hours = floor($time/3600); 
$mins = floor($time/60 % 60); 
$secs = floor($time % 60); 
+0

Спасибо, что его работа отличная – Goran