2016-03-28 3 views
1

Ich versuche herauszufinden, wie die Zeit von Google Maps API in ihrer "Dauer" zu etwas formatieren, mit dem ich tatsächlich arbeiten kann.jQuery Format Zeit von Google Maps API zurückgegeben

Wenn ich die Dauer zurückkehren, bekomme ich so etwas wie:

1 day 13 hours 
2 days 22 hours 
1 hour 12 mins 
3 hours 18 mins 
1 hour 
6 mins 

Das einzige, was ich für die Art und Weise sagen kann, die Dauer formatiert ist, dass es nie mehr als zwei Sätze von Zahlen zeigt. Es zeigt (soweit ich es gesehen habe) nicht Tage, Stunden und Minuten, aber das ist das Format, das ich zurückbekomme.

Ich möchte in der Lage sein, diese Zahlen zu nehmen, verwandeln sie in Sekunden und Mathematik von dort (Rundung Stunden, Minuten usw.)

Wie kann ich diese in so etwas wie Gesamt Sekunden formatieren?

EDIT Ich bin mit dem Google Maps DirectionRequest service

+1

Aus der Dokumentation (https://developers.google .com/maps/documentation/entfernungsmatrix/intro # DistanceMatrixResponses) Ich sehe, dass sie einen numerischen Wert mit dem Text zurückgeben. Vielleicht können Sie genauer festlegen, welche API Sie verwenden. –

+0

@SideriteZackwehdex, Vielen Dank für das Hinweis. Ich habe meine Frage – ntgCleaner

+0

dasselbe Ding aktualisiert: https://developers.google.com/maps/documentation/javascript/directions#Legs .Duration ist ein Objekt, das Wert und Text enthält. –

Antwort

1

basierend auf dieser link, scheint es, dass die API gibt sowohl einen „Wert“ und ein Textmenge:

}, { 
    "status": "OK", 
    "duration": { 
    "value": 24487, 
    "text": "6 heures 48 minutes" 
    }, 
    "distance": { 
    "value": 129324, 
    "text": "129 km" 
    } 

Der Wert für die Dauer erscheint Sekunden sein, die leichter zu bearbeiten sind als der Textwert.

+0

Ah, David, danke - ich werde das jetzt testen. Ich habe gerade ein Skript geschrieben, um mit diesem Ding fertig zu werden, aber ich werde mich genau jetzt damit befassen. – ntgCleaner

+0

Danke - Ich werde Ihre Antwort akzeptieren, wenn das Zeitlimit abgelaufen ist! – ntgCleaner

0

David784 hat meine Frage auf die bestmögliche Weise beantwortet.

Für alle, die immer noch ein Problem mit dieser Art der Formatierung hat, habe ich geschrieben das

Ich habe ausführlich NICHT GETESTET

function humanTimeToSeconds(time){ 
    var time_seconds = 0; 
    time = time.split(" "); 
    for(var i = 0; i < time.length; i++){ 
     if(i%2 == 0){ 
      var time_amount = time[i]; 
      var time_type = time[i+1]; 
      if(time_type == "days" || time_type == "day"){ 
       time_seconds = time_seconds + (time_amount * 24 * 60 * 60); 
      } else if(time_type == "hours" || time_type == "hour"){ 
       time_seconds = time_seconds + (time_amount * 60 * 60); 
      } else if(time_type == "mins" || time_type == "min"){ 
       time_seconds = time_seconds + (time_amount * 60); 
      } 
     } 
    } 
    return time_seconds; 
}