Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst] Datum mit Uhrzeit in Unixzeit umwandeln

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    20
    1
    757

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

[gelöst] Datum mit Uhrzeit in Unixzeit umwandeln

Geplant Angeheftet Gesperrt Verschoben JavaScript
15 Beiträge 4 Kommentatoren 2.4k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • O Offline
    O Offline
    Oli
    schrieb am zuletzt editiert von
    #5

    @Homran,

    trotzdem Danke für deine schnelle Antwort.

    Gruß
    Oliver

    1 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      dwm
      schrieb am zuletzt editiert von
      #6

      Du suchst "getTime()"...

      siehe https://www.w3schools.com/jsref/jsref_gettime.asp

      var theDate = new Date("28 Dec 2019 00:00:00 GMT");
      log (theDate.getTime());
      

      liefert
      1577491200000

      Achtung: Das liefert die Millisekunden, evt. durch 1000 teilen :)

      1 Antwort Letzte Antwort
      0
      • O Oli

        Hallo zusammen,

        ich befasse mich erst seit kurzen mit dem Thema ioBroker und Javascript, aus diesem Grund stoße ich auch immer wieder an meine Grenzen.

        Ich möchte aber allen Teilnehmer ein großes Lob und Dankeschön ausrichten, was ihr hier alles leistet ist echt Top!!!

        Nun aber zu meinem Problem:

        Ich rufe mir mit einem Script hier aus dem Forum die Busverbindung über Google Api auf, nun möchte ich aber nicht nur die nächste Verbindung, sondern auch die übernächste Verbindung abrufen.

        Nach Angaben von Google muss die Abfahrtszeit in Unixzeit angegeben werden, also dachte ich mir, ich nehme das aktuelle Datum, plus die Abfahrtszeit der ersten Verbindung, plus einen Zuschlag von 2 Minuten.

        Nur wie schaffe ich es, eine zusammengebaute Variable in Unixzeit umzurechnen?

        Das vorhanden Script füge ich mit bei.

        // Busfahrplan per Google Maps
        //
        // Beschreibung der API: https://developers.google.com/maps/documentation/directions/intro?hl=de#traffic-model
        // API-Key: https://console.developers.google.com/apis/dashboard?project=iobroker-privat&duration=PT1H
          
        //Infos : http://forum.iobroker.net/viewtopic.php?f=8&t=4019&p=38235#p38226
        
        var apikey              = "xxxxxxxxxxxxxxxxxxxxx"; //(Mein Key wurde eingetragen)
        var origin              = "49.352588,11.144985"; // Koordinaten Startadresse
        var destination         = "49.444155,11.084046"; // Koordinaten Zieladresse
        
        var request = require('request');
        var logging = true;
         
        createState('Busfahrplan.Aktualisieren', false, {
                desc: 'Werte aktualisieren',
                type: 'boolean',
                def:  false,
                role: 'indicator'    
        });
        createState('Busfahrplan.Bus1.Startzeit', 0, {
        		});
        createState('Busfahrplan.Bus1.Abfahrtszeit', 0, {
        		});		
        createState('Busfahrplan.Bus1.Ankunftszeit', 0, {
        		});
        createState('Busfahrplan.Bus1.Haltestelle', 0, {
        		});
        createState('Busfahrplan.Bus1.Linie', 0, {
        		});
        createState('Busfahrplan.Bus1.Verkehrsmittel', 0, {
        		});	
        createState('Busfahrplan.Bus2.Startzeit', 0, {
        		});
        createState('Busfahrplan.Bus2.Abfahrtszeit', 0, {
        		});		
        createState('Busfahrplan.Bus2.Ankunftszeit', 0, {
        		});
        createState('Busfahrplan.Bus2.Haltestelle', 0, {
        		});
        createState('Busfahrplan.Bus2.Linie', 0, {
        		});
        createState('Busfahrplan.Bus2.Verkehrsmittel', 0, {
        		});	
         
        function datenlesen() {
            //Hochkreuzalle nach HBF ohne Waypoints
            //var link = 'https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJ_xXrLmzkvkcRQacjsrOKAv0&&destination=place_id:ChIJAwsLOp_hvkcRMZDtxvyPpBc&key=###API_KEY_EINFÜGEN###&mode=transit&language=de' ;
            var link = 'https://maps.googleapis.com/maps/api/directions/json'  
                     + '?origin=' + origin             
                     + '&destination=' + destination 
                     + '&departure_time=now'
                     + '&mode=transit'
                     + '&language=de-DE'
                     + '&key=' + apikey;  
            
            log('Google Daten einlesen');
            request(link, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    var result;
                    try{
                        result = JSON.parse(body);
         
                        if (logging) log('Kein Fehler beim Einlesen Google Daten');
         
                    } catch (e) {
                        log('Parse Fehler (Roofi Modul):' + e);
                    }    
                    if (result) {
         
                        var Startzeit;
                        var Abfahrtszeit;
                        var Ankunftszeit;
                        var Haltestelle;
                        var Linie;
                        var Verkehrsmittel;
         
                        if (logging) log(result.routes[0].legs[0].departure_time.text);
                        if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_time.text);
                        if (logging) log(result.routes[0].legs[0].arrival_time.text);
                        if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_stop.name);
                        if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.short_name);
                        if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name);
         
                        Startzeit = result.routes[0].legs[0].departure_time.text;
                        Abfahrtszeit = result.routes[0].legs[0].steps[1].transit_details.departure_time.text;
                        Ankunftszeit = result.routes[0].legs[0].arrival_time.text;
                        Haltestelle = result.routes[0].legs[0].steps[1].transit_details.departure_stop.name;
                        Linie = result.routes[0].legs[0].steps[1].transit_details.line.short_name;
                        Verkehrsmittel = result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name;               
        
                        setState("javascript.0.Busfahrplan.Bus1.Startzeit",Startzeit);
                        setState("javascript.0.Busfahrplan.Bus1.Abfahrtszeit",Abfahrtszeit);
                        setState("javascript.0.Busfahrplan.Bus1.Ankunftszeit",Ankunftszeit);
                        setState("javascript.0.Busfahrplan.Bus1.Haltestelle",Haltestelle);
                        setState("javascript.0.Busfahrplan.Bus1.Linie",Linie);
                        setState("javascript.0.Busfahrplan.Bus1.Verkehrsmittel",Verkehrsmittel);             
                       
                    }
                } else log('Fehler (Google Daten Abfrage: ' + error);
            });   // Ende request 
            log('Google Daten eingelesen');
        }
        
        schedule("*/10 5,4-22,44 * * *", function () { // alle 10 Minuten die Werte abfragen
             datenlesen ();
         });
          
         // Beim Skriptstart die Werte abfragen
         setTimeout(datenlesen,1000);
        

        Vielen Dank für eure Hilfe.
        Gruß Oliver

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #7

        @Oliver-Böhm sagte:

        Abfahrtszeit = result.routes[0].legs[0].steps[1].transit_details.departure_time.text;

        Anstelle von .text gibt es sicherlich noch andere Möglichkeiten ? Vielleicht in s oder ms, mit denen es kein Problem ist, 2 Minuten (120 s) zu addieren.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • O Oli

          Hallo zusammen,

          ich befasse mich erst seit kurzen mit dem Thema ioBroker und Javascript, aus diesem Grund stoße ich auch immer wieder an meine Grenzen.

          Ich möchte aber allen Teilnehmer ein großes Lob und Dankeschön ausrichten, was ihr hier alles leistet ist echt Top!!!

          Nun aber zu meinem Problem:

          Ich rufe mir mit einem Script hier aus dem Forum die Busverbindung über Google Api auf, nun möchte ich aber nicht nur die nächste Verbindung, sondern auch die übernächste Verbindung abrufen.

          Nach Angaben von Google muss die Abfahrtszeit in Unixzeit angegeben werden, also dachte ich mir, ich nehme das aktuelle Datum, plus die Abfahrtszeit der ersten Verbindung, plus einen Zuschlag von 2 Minuten.

          Nur wie schaffe ich es, eine zusammengebaute Variable in Unixzeit umzurechnen?

          Das vorhanden Script füge ich mit bei.

          // Busfahrplan per Google Maps
          //
          // Beschreibung der API: https://developers.google.com/maps/documentation/directions/intro?hl=de#traffic-model
          // API-Key: https://console.developers.google.com/apis/dashboard?project=iobroker-privat&duration=PT1H
            
          //Infos : http://forum.iobroker.net/viewtopic.php?f=8&t=4019&p=38235#p38226
          
          var apikey              = "xxxxxxxxxxxxxxxxxxxxx"; //(Mein Key wurde eingetragen)
          var origin              = "49.352588,11.144985"; // Koordinaten Startadresse
          var destination         = "49.444155,11.084046"; // Koordinaten Zieladresse
          
          var request = require('request');
          var logging = true;
           
          createState('Busfahrplan.Aktualisieren', false, {
                  desc: 'Werte aktualisieren',
                  type: 'boolean',
                  def:  false,
                  role: 'indicator'    
          });
          createState('Busfahrplan.Bus1.Startzeit', 0, {
          		});
          createState('Busfahrplan.Bus1.Abfahrtszeit', 0, {
          		});		
          createState('Busfahrplan.Bus1.Ankunftszeit', 0, {
          		});
          createState('Busfahrplan.Bus1.Haltestelle', 0, {
          		});
          createState('Busfahrplan.Bus1.Linie', 0, {
          		});
          createState('Busfahrplan.Bus1.Verkehrsmittel', 0, {
          		});	
          createState('Busfahrplan.Bus2.Startzeit', 0, {
          		});
          createState('Busfahrplan.Bus2.Abfahrtszeit', 0, {
          		});		
          createState('Busfahrplan.Bus2.Ankunftszeit', 0, {
          		});
          createState('Busfahrplan.Bus2.Haltestelle', 0, {
          		});
          createState('Busfahrplan.Bus2.Linie', 0, {
          		});
          createState('Busfahrplan.Bus2.Verkehrsmittel', 0, {
          		});	
           
          function datenlesen() {
              //Hochkreuzalle nach HBF ohne Waypoints
              //var link = 'https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJ_xXrLmzkvkcRQacjsrOKAv0&&destination=place_id:ChIJAwsLOp_hvkcRMZDtxvyPpBc&key=###API_KEY_EINFÜGEN###&mode=transit&language=de' ;
              var link = 'https://maps.googleapis.com/maps/api/directions/json'  
                       + '?origin=' + origin             
                       + '&destination=' + destination 
                       + '&departure_time=now'
                       + '&mode=transit'
                       + '&language=de-DE'
                       + '&key=' + apikey;  
              
              log('Google Daten einlesen');
              request(link, function (error, response, body) {
                  if (!error && response.statusCode == 200) {
                      var result;
                      try{
                          result = JSON.parse(body);
           
                          if (logging) log('Kein Fehler beim Einlesen Google Daten');
           
                      } catch (e) {
                          log('Parse Fehler (Roofi Modul):' + e);
                      }    
                      if (result) {
           
                          var Startzeit;
                          var Abfahrtszeit;
                          var Ankunftszeit;
                          var Haltestelle;
                          var Linie;
                          var Verkehrsmittel;
           
                          if (logging) log(result.routes[0].legs[0].departure_time.text);
                          if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_time.text);
                          if (logging) log(result.routes[0].legs[0].arrival_time.text);
                          if (logging) log(result.routes[0].legs[0].steps[1].transit_details.departure_stop.name);
                          if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.short_name);
                          if (logging) log(result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name);
           
                          Startzeit = result.routes[0].legs[0].departure_time.text;
                          Abfahrtszeit = result.routes[0].legs[0].steps[1].transit_details.departure_time.text;
                          Ankunftszeit = result.routes[0].legs[0].arrival_time.text;
                          Haltestelle = result.routes[0].legs[0].steps[1].transit_details.departure_stop.name;
                          Linie = result.routes[0].legs[0].steps[1].transit_details.line.short_name;
                          Verkehrsmittel = result.routes[0].legs[0].steps[1].transit_details.line.vehicle.name;               
          
                          setState("javascript.0.Busfahrplan.Bus1.Startzeit",Startzeit);
                          setState("javascript.0.Busfahrplan.Bus1.Abfahrtszeit",Abfahrtszeit);
                          setState("javascript.0.Busfahrplan.Bus1.Ankunftszeit",Ankunftszeit);
                          setState("javascript.0.Busfahrplan.Bus1.Haltestelle",Haltestelle);
                          setState("javascript.0.Busfahrplan.Bus1.Linie",Linie);
                          setState("javascript.0.Busfahrplan.Bus1.Verkehrsmittel",Verkehrsmittel);             
                         
                      }
                  } else log('Fehler (Google Daten Abfrage: ' + error);
              });   // Ende request 
              log('Google Daten eingelesen');
          }
          
          schedule("*/10 5,4-22,44 * * *", function () { // alle 10 Minuten die Werte abfragen
               datenlesen ();
           });
            
           // Beim Skriptstart die Werte abfragen
           setTimeout(datenlesen,1000);
          

          Vielen Dank für eure Hilfe.
          Gruß Oliver

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #8

          @Oliver-Böhm:
          Doku:

          arrival_time contains the estimated time of arrival for this leg. This property is only returned for transit directions. The result is returned as a Time object with three properties:

          value the time specified as a JavaScript Date object.

          Dann sollte es etwa so funktionieren:

          var dep = result.routes[0].legs[0].steps[1].transit_details.departure_time.value;
          // Unix-Zeit in s 2 Minuten später  
          var next = Math.round(dep.setMinutes(dep.getMinutes() + 2) / 1000);
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • O Offline
            O Offline
            Oli
            schrieb am zuletzt editiert von
            #9

            @paul53 said in Datum mit Uhrzeit in Unixzeit umwandeln:

            var dep = result.routes[0].legs[0].steps[1].transit_details.departure_time.value; // Unix-Zeit in s 2 Minuten später var next = Math.round(dep.setMinutes(dep.getMinutes() + 2) / 1000);

            Da bringt er mir folgende Fehler:

            b09e2d09-5200-4448-b507-528d7a3995ae-image.png

            Gruß
            Oliver

            paul53P 1 Antwort Letzte Antwort
            0
            • O Oli

              @paul53 said in Datum mit Uhrzeit in Unixzeit umwandeln:

              var dep = result.routes[0].legs[0].steps[1].transit_details.departure_time.value; // Unix-Zeit in s 2 Minuten später var next = Math.round(dep.setMinutes(dep.getMinutes() + 2) / 1000);

              Da bringt er mir folgende Fehler:

              b09e2d09-5200-4448-b507-528d7a3995ae-image.png

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #10

              @Oliver-Böhm
              Dann ist es kein Javascript Date object. Was sagt ?

              log(dep + ' ' + typeof dep);
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • O Offline
                O Offline
                Oli
                schrieb am zuletzt editiert von
                #11

                Habe den Fehler gefunden :-),

                deine 1. Codezeile wirft den Wert schon in Sekunden aus, super vielen Dank!!

                Jetzt habe ich aber noch eine Anfängerfrage.

                Wie packe ich jetzt beide anfragen in einen Code?

                Gruß
                Oliver

                paul53P 1 Antwort Letzte Antwort
                0
                • O Oli

                  Habe den Fehler gefunden :-),

                  deine 1. Codezeile wirft den Wert schon in Sekunden aus, super vielen Dank!!

                  Jetzt habe ich aber noch eine Anfängerfrage.

                  Wie packe ich jetzt beide anfragen in einen Code?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #12

                  @Oliver-Böhm sagte:

                  Wie packe ich jetzt beide anfragen in einen Code?

                  Keine Ahnung, ich kenne die Schnittstelle nicht, sondern müsste mich auch durch die API-Doku wälzen. Das mit .value habe ich zufällig entdeckt.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • O Offline
                    O Offline
                    Oli
                    schrieb am zuletzt editiert von
                    #13

                    ich habe jetzt pro Verbindungsabfrage ein Script angelegt und lassen mir bei der ersten Abfragen die neue Abfragezeit in einen Datenpunkt eintragen.

                    Wie kann ich jetzt dem 2. Script sagen "führe Abfrage durch, sobald sich der Datenpunkt ändert"?

                    Und wie kann ich diesen Forumsbeitrag als gelöst kennzeichnen?

                    Gruß
                    Oliver

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • O Oli

                      ich habe jetzt pro Verbindungsabfrage ein Script angelegt und lassen mir bei der ersten Abfragen die neue Abfragezeit in einen Datenpunkt eintragen.

                      Wie kann ich jetzt dem 2. Script sagen "führe Abfrage durch, sobald sich der Datenpunkt ändert"?

                      Und wie kann ich diesen Forumsbeitrag als gelöst kennzeichnen?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #14

                      @Oliver-Böhm sagte:

                      "führe Abfrage durch, sobald sich der Datenpunkt ändert"

                      on(idDatenpunkt, function(dp) { // triggert bei Wertänderung
                          var zeit = dp.state.val;
                          // Abfrage
                      });
                      

                      @Oliver-Böhm sagte in Datum mit Uhrzeit in Unixzeit umwandeln:

                      wie kann ich diesen Forumsbeitrag als gelöst kennzeichnen?

                      Durch Editieren der Überschrift.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      1
                      • O Offline
                        O Offline
                        Oli
                        schrieb am zuletzt editiert von
                        #15

                        @paul53 said in Datum mit Uhrzeit in Unixzeit umwandeln:

                        on(idDatenpunkt, function(dp) { // triggert bei Wertänderung var zeit = dp.state.val; // Abfrage });

                        Vielen Dank für deine Hilfe!!

                        Gruß
                        Oliver

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        833

                        Online

                        32.5k

                        Benutzer

                        81.6k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe