Zeitberechnung

Diskutiere Zeitberechnung im JavaScript Forum im Bereich Programmierung; Hallo Ich versuche es seit Monaten immer wieder eine Zeitberechnung mit Javascript hinzubekommen. Das Szenario sieht folgendermaßen aus...
  • Zeitberechnung Beitrag #1
A
Andy001
New member
Beiträge
4
Punkte Reaktionen
0
Hallo
Ich versuche es seit Monaten immer wieder eine Zeitberechnung mit Javascript hinzubekommen. Das Szenario sieht folgendermaßen aus:
Vorhanden: Aktuelle Uhrzeit, Startzeit, Endzeit (jeweils nur Stunden und Minuten)
Es sollen die übrigen Minuten bis zur Startzeit (wenn es gestartet ist bis zur Endzeit) ausgegeben werden.
Wenn Start: 9:00, Ende: 21.00 ist, bekomme ich das gerade noch hin. Geht die Zeit aber über in den nächsten Tag, reicht mein KnowHow nicht aus. Wenn z.B. Start: 21.00, Ende: 9:00 ist schaffe ich es nicht die restichen Minuten auszugeben.
Erschwerend kommt noch hinzu, dass ich so gut wie keinen Plan von Javascript habe und die Möglichkeit auf eine andere Sprache auszuweichen leider wegfällt.
Kann mir bitte jemand dabei helfen?
 
  • Zeitberechnung Beitrag #2
T
tk1234
Well-known member
Beiträge
103
Punkte Reaktionen
8
Es sollen die übrigen Minuten bis zur Startzeit (wenn es gestartet ist bis zur Endzeit) ausgegeben werden.
Wenn Start: 9:00, Ende: 21.00 ist, bekomme ich das gerade noch hin.
Wie sieht dein Code bisher aus? Du brauchst vmtl. nicht nur eine Uhrzeit sondern einen vollständigen Zeitpunkt, also zusammen mit einem Datum - dann lässt sich aus den beiden Zeitpunkten die Differenz bilden und ausgeben.
Erschwerend kommt noch hinzu, dass ich so gut wie keinen Plan von Javascript habe […]
Das macht die Sache natürlich schwierig - aber wie stellst du dir das dann vor? Ein Forum ist kein Codelieferservice, idR gibt es hier nur Hilfe zur Selbsthilfe (es gibt vereinzelt User die immer fertige Lösungen posten was dem Fragenden auf lange Sicht nichts bringt, deswegen gehöre ich nicht zu diesen), schreiben musst du den Code schon selbst.
 
  • Zeitberechnung Beitrag #3
A
Andy001
New member
Beiträge
4
Punkte Reaktionen
0
Danke für den Link. Ergibt iwie Sinn mit kompletten Datum statt nur die Zeit. Kam ich nicht drauf und werde das mal versuchen.

Zu deinem 2. Teil deiner Antwort: genau sowas, wie deinen 1. Teil habe ich mir vorgestellt.
Schade, dass direkt beim 1. Post so eine Unterstellung kommt ein fauler Hund zu sein. Macht das Forum sehr einladend.
 
  • Zeitberechnung Beitrag #4
T
tk1234
Well-known member
Beiträge
103
Punkte Reaktionen
8
Schade, dass direkt beim 1. Post so eine Unterstellung kommt ein fauler Hund zu sein. Macht das Forum sehr einladend.
Das sollte keine Unterstellung sein, eher eine Klarstellung was es hier gibt (und was eben nicht). Aus der Erfahrung heraus (ich bin schon *deutlich* länger in Foren unterwegs als es das Anmeldedatum hier vermuten lassen würde) ist es eben oft so dass viele fertigen Code erwarten und sich eigentlich nicht wirklich mit dem Problem beschäftigen wollen - wenn das bei dir anders ist: um so besser, probier es einfach mal zusammen mit dem Datum aus und wenn du es nicht hin bekommst dann poste deinen Code und dann sehen wir weiter.
 
  • Zeitberechnung Beitrag #5
S
Sempervivum
Well-known member
Beiträge
760
Punkte Reaktionen
125
"Schade, dass direkt beim 1. Post so eine Unterstellung kommt ein fauler Hund zu sein. Macht das Forum sehr einladend."
Stimme zu. In Zeiten wo immer mehr gähnende Leere in den einschlägigen Foren herrscht ist es kontraproduktiv, neue Mitglieder gleich mit Kritik und Ermahnungen zu begrüßen. Sehr wahrscheinlich, dass es hier eine hohe Dunkelziffer gibt: Wer überlegt, sich in einem Forum anzumelden, wird sich erst Mal ein wenig umsehen und gleich wieder das Weite suchen wenn er solche Kommentare liest.
Merke: Duch Vorwürfe und Forderungen ist noch kein Problem gelöst worden und kein Projekt ans Laufen gekommen. Sondern nur durch Lösungen.

" Ein Forum ist kein Codelieferservice, idR gibt es hier nur Hilfe zur Selbsthilfe (es gibt vereinzelt User die immer fertige Lösungen posten was dem Fragenden auf lange Sicht nichts bringt, deswegen gehöre ich nicht zu diesen), schreiben musst du den Code schon selbst."
Hierzu ist anzumerken, dass es sich um die persönliche und subjektive Meinung des betr. Mitglieds handelt. Zeugt von einem hohen Maß an Selbstüberschätzung, das für allgemein gültig zu erklären.
 
  • Zeitberechnung Beitrag #6
L
Lupus
Member
Beiträge
24
Punkte Reaktionen
0
Also ich habe vor Jahren mal etwas benutzt das Dir vielleicht weiterhelfen könnte. Du mußt es halt für Deine Zwecke anpassen.
HTML:
<html>
  <head>
    <title>Datum-Countdown mit JavaScript</title>

    <script language="JavaScript">
      // Ziel-Datum in MEZ
      var jahr=2025, monat=09, tag=20, stunde=18, minute=30, sekunde=00;
      var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);

      function countdown() {
        startDatum=new Date(); // Aktuelles Datum

        // Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
        if(startDatum<zielDatum)  {

          var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;

          // Jahre
          while(startDatum<zielDatum) {
            jahre++;
            startDatum.setFullYear(startDatum.getFullYear()+1);
          }
          startDatum.setFullYear(startDatum.getFullYear()-1);
          jahre--;

          // Monate
          while(startDatum<zielDatum) {
            monate++;
            startDatum.setMonth(startDatum.getMonth()+1);
          }
          startDatum.setMonth(startDatum.getMonth()-1);
          monate--;

          // Tage
          while(startDatum.getTime()+(24*60*60*1000)<zielDatum) {
            tage++;
            startDatum.setTime(startDatum.getTime()+(24*60*60*1000));
          }

          // Stunden
          stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
          startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);

          // Minuten
          minuten=Math.floor((zielDatum-startDatum)/(60*1000));
          startDatum.setTime(startDatum.getTime()+minuten*60*1000);

          // Sekunden
          sekunden=Math.floor((zielDatum-startDatum)/1000);

          // Anzeige formatieren
         // (jahre!=1)?jahre=jahre+" Jahre,  ":jahre=jahre+" Jahr,  ";
          //(monate!=1)?monate=monate+" Monate,  ":monate=monate+" Monat,  ";
          (tage!=1)?tage=tage+" Tage,  ":tage=tage+" Tag,  ";
          (stunden!=1)?stunden=stunden+" Stunden,  ":stunden=stunden+" Stunde,  ";
          (minuten!=1)?minuten=minuten+" Minuten  und  ":minuten=minuten+" Minute  und  ";
          if(sekunden<10) sekunden="0"+sekunden;
          (sekunden!=1)?sekunden=sekunden+" Sekunden":sekunden=sekunden+" Sekunde";

          document.countdownform.countdowninput.value=
              jahre+monate+tage+stunden+minuten+sekunden;

          setTimeout('countdown()',200);
        }
        // Anderenfalls alles auf Null setzen
        else document.countdownform.countdowninput.value=
            "0 Jahre,  0 Monate,  0 Tage,  0 Stunden,  0 Minuten  und  00 Sekunden";
      }
    </script>
  </head>

  <body onload="countdown()">
    <form name="countdownform">
      <p>Nur noch
        <input size="75" name="countdowninput">
        bis zur Eröffnung
      </p>
    </form>
  </body>

</html>
 
  • Zeitberechnung Beitrag #7
A
Andy001
New member
Beiträge
4
Punkte Reaktionen
0
Danke für Eure Antworten. Ich hab es jetzt hinbekommen, ohne das Datum zu berücksichtigen. 3 If-Statements waren tatsächlich ausreichend. Ich war anscheinend blockiert (Wald vor lauter Bäumen und so...) und das Fragen hier hat die Blockade offensichtlich gelöst. 👍
 
  • Zeitberechnung Beitrag #8
L
Lupus
Member
Beiträge
24
Punkte Reaktionen
0
Dannlass uns doch an deinem Ergebnis teilhaben und schick mal deinen Code.
 
  • Zeitberechnung Beitrag #9
A
Andy001
New member
Beiträge
4
Punkte Reaktionen
0
Würde ich, wenn ich da nicht soviel zerpflücken müsste um die ganzen anderen Codes rauszunehmen, die nichts mit dem Thema zu tun haben. Das ganze ist ein inzwischen recht großes Projekt.
Aber von Prinzip her überprufe ich, ob die aktuelle Zeit innerhalb des aktiven Zeitraums ist und berechne nur noch die verbleibende Zeit bis zum Stop. Bei mir kommen einige Daten direkt aus einem Esp32, andere vom NAS. Deshalb ist das zerpflücken nicht mal schnell gemacht. In der HTML habe ich, um es zu vereinfachen ein paar Hidden Inputs eingebaut.
 
Thema:

Zeitberechnung

Oben Unten