Ankündigung

Einklappen
Keine Ankündigung bisher.

MVG (München) Fahrplandaten einlesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jeff25
    antwortet
    Hmmm und nun? kann ich das vorher irgendwie zerschneiden oder was rausfiltern?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von jeff25 Beitrag anzeigen
    kann es sien das es hier eine längenbegrenzung des Json Strings gibt?
    10.000 Zeichen ist die Grenze seitens EDOMI.

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    Hallo zusammen,

    ich habe mit der Lösung oben beschrieben nune in seltsames Problem. Ich nutze Json Abfrage und Json Extractor 0,4 und wenn ich dieses Json Abfrage:

    https://www.mvg.de/api/fahrinfo/departure/de:09162:988

    kommt am Extractor Status immer invalid Json. Ich habe nun mal den Json Output direkt angesehen und es wirkt als wenn im LBS nur die hälfte am E1 ankommt, kann es sien das es hier eine längenbegrenzung des Json Strings gibt?

    Gruß
    RObert

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ja, floor() schneidet die Nachkommastellen ab, da es abrundet.

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    super, so habe ich es auch gerade versucht, nun muss ich nur noch schaffen positive Zeiten auszugeben und auch nur die minuten, die Nachkommastellen bringen nicht wirklich was da ich die Datensource auch ur einmal die Minuten anfrage.

    ps: habe es nun mal mit floor((time()-$E1/1000)/60) versucht. Das scheint zu gehen....
    Zuletzt geändert von jeff25; 17.01.2020, 14:04.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ja das ist die Differenz in Sekunden. Die sollte jede Sekunde um 1 größer werden.
    Ob du das in Minuten umrechnen musst, hängt davon ab, was du mit dem Vergleich machen willst.
    Das kannst du natürlich direkt in der Formel machen:

    PHP-Code:
    (time()-$E1/1000)/60 
    Da kommt dann aber ein Float Wert raus.

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    Dank dir. Habe ich gerade versucht, bist du sicher das das geht, ich habe das nun eingerichtet manchma steht 1 manchma 136 im Ergebniss... das wären dann ja die sekunden als differenz oder? Dann müsste ich das noch in Minuten umrechnen nimm ich an...

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Du könntest den 19000805 PHP Function LBS verwenden.

    An E2 sowas wie:

    PHP-Code:
    time()-$E1 
    Wenn du dann an E1 deinen Timestamp sendest, dann ist A1 >0 wenn der Timestamp in der Vergangenheit liegt und <0 wenn er in der Zukunft liegt.
    Übrigens ist dein Wert kein UNIX Timestamp. Ein Unix Timestamp hat in unserer überschaubaren Lebenszeit 10 Stellen (1579259820). Bei dir ist es wohl ein Unix-Timestamp*1000 (Millisekunden). In diesem Fall wäre vermutlich

    PHP-Code:
    time()-$E1/1000 
    die richtige Formel.



    Einen Kommentar schreiben:


  • jeff25
    antwortet
    Hallo zusammen,

    kurze Frage, habe schon viel rumprobiert aber noch nichts hinbekommen. Wenn ich eine Ausgabe im UNIX timestamp "1579259820000" mit der aktuellen Zeit vergleichen will und die differenz ausgeben will wie stelle ich das am besten an? Ich habe ein LBS gefunden was das kann, evtl könnte es mit 19000641 aber da müsste ich dann ja Datum + Uhrzeit erst als String zusammenfügen....

    Gruß
    Robert

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    Hi jonofe ,

    konnte erst jetzt testen und es klappt ohne Probleme. Bin happy. Vielen Dankd ir und auch den anderen. Bekomme alle Infos der Münchner MVG angezeigt wie ich es mir wünsche nun.

    Gruß
    RObert

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    super vielen danke jonofe. Werde ich testen. Fast so hatte ich es schon versucht, mir war nicht klar das ich nach dem | noch die Zahl angeben musste.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    In dem JSON von oben sind aber 30 Einträge enthalten.

    Aber so ungefähr könntest du die Daten rausziehen:

    json.PNG
    Im ersten JSON Extractor nur die Zahl hinter dem | je Eingang um 1 hochzählen.
    Im zweiten Level wird jeder Extractor exakt gleich konfiguriert, nur der Eingang E1 wird von einem anderen Ausgang des ersten Extractors gespeist.

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    die Liste ist immer gleich lange. Immer 10 Züge, nur die Ankunftszeiten und so weiter ändern sich.... Und ich will alle 10 Datensätze haben die habe ich vorher schon in der Abfrage beim. Webservice auf meine Station gefiltert.
    Zuletzt geändert von jeff25; 10.01.2020, 08:57.

    Einen Kommentar schreiben:


  • vento66
    antwortet
    So in etwa?
    PHP-Code:
    $arr json_decode($ret,true);

    foreach(
    $arr['departures'] as $y => $x){
        echo 
    "Next</br>";
        echo 
    $x['departureTime']."</br>";
        echo 
    $x['label']."</br>";
        echo 
    $x['destination']."</br>";

    wobei $ret dein json String ist

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Das ist mir schon klar, aber das Vorgehen hängt davon ab, ob
    • die Struktur des JSON immer gleich ist oder ob sie dynamisch ist
    • du Elemente auf Basis des Dateninhalts filtern möchtest (z.B. nur Linie 23)
    • du genau weißt, welches Element aus einer Liste du extrahieren willst
    Ich würde mir an deiner Stelle mal JSON Extractor (19001208) und JSON Filter (19001573) LBS anschauen.

    Einen Kommentar schreiben:

Lädt...
X