Becca: Zeitberechnung

0 51

Zeitberechnung

Becca
  • php
  1. 0
    TS
    1. 0
      Becca
      1. 0
        TS
        1. 0
          Becca
          1. 1
            Auge
            1. 0
              Becca
              1. 0
                Tabellenkalk
                1. 0
                  Auge
                  1. 0
                    Camping_RIDER
                    1. 0
                      Auge
                      1. 0
                        Camping_RIDER
                        1. 0
                          Tabellenkalk
              2. 0
                TS
              3. 0
                Gunnar Bittersmann
              4. 0
                Camping_RIDER
                1. 0
                  Becca
                  1. 0
                    TS
                    • algorithmus
                    • php
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        TS
                        • algorithmus
                        • menschelei
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            TS
                            1. 0
                              Gunnar Bittersmann
                              1. -3
                                TS
                                1. 0
                                  TS
                                  • seitenbewertung
                                  1. 2

                                    Über Beiträge mit Verunglimpfungen oder Erdogan-Vergleichen

                                    Camping_RIDER
                                    • moderation
                                    • seitenbewertung
                                    • zu diesem forum
                        2. 0
                          Camping_RIDER
                    2. 1
                      Camping_RIDER
                  2. 2
                    Camping_RIDER
      2. 0
        dedlfix
        1. 0
          Tabellenkalk
          • logik
          • php
          1. 0
            dedlfix
            1. 0
              Tabellenkalk
              1. 0
                dedlfix
                1. 0
                  Tabellenkalk
                  1. 0
                    dedlfix
                    1. 0
                      TS
                      • logik
                      • php
                      • programmiertechnik
                      1. 0
                        Tabellenkalk
                      2. 0
                        dedlfix
                        1. 0
                          Gunnar Bittersmann
                        2. 0
                          TS
                          • logik
                          • menschelei
                          • programmiertechnik
                        3. 0
                          Camping_RIDER
                          1. 0
                            dedlfix
                            1. 0
                              Camping_RIDER
                      3. 0
                        Camping_RIDER
        2. 0
          Gunnar Bittersmann
  2. 0
    Felix Riesterer
    1. 0
      Tabellenkalk
      1. 0
        Gunnar Bittersmann
        1. 0
          Becca
          1. 0
            Gunnar Bittersmann

Hallo,

ich muss eine Differenz zwischen zwei Uhrzeiten berechnen.

Beispiel:
7:15 Uhr - 12:00 Uhr = 4,45 min

  1. Hello,

    ich muss eine Differenz zwischen zwei Uhrzeiten berechnen.

    Beispiel:
    7:15 Uhr - 12:00 Uhr = 4,45 min

    Schöne Aufgabe. Klar umrissen.

    Aber was ist dein Problem dabei?

    Hast Du schon die Zeitfunktionen in der PHP-Dokumentation angesehen und ausprobiert?

    Wo klemmt es jetzt?

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es
    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    1. Ich habe es so gemacht

      $startzeit = strtotime("07:15");
      $endzeit = strtotime("12:00");
       
      $dauerInMinuten = ($endzeit - $startzeit)/60/60;
       
      echo "07:15 Uhr<br>";
      echo "12:00 Uhr<br><br>";
      echo "Ergebnis: <br>";
      echo $dauerInMinuten . " Stunden ";
      

      Als Ergebnis erhalte ich: 4.75 Stunden würde soweit passen. Jetzt möchte ich das ganze immer auf 1/4 Stunden aufrufen, also wären es in diesem Fall 5 Stunden. Gibt es dazu auch eine PHPFunktion?

      1. Hello,

        Ich habe es so gemacht

        $startzeit = strtotime("07:15");
        $endzeit = strtotime("12:00");
         
        $dauerInMinuten = ($endzeit - $startzeit)/60/60;
         
        echo "07:15 Uhr<br>";
        echo "12:00 Uhr<br><br>";
        echo "Ergebnis: <br>";
        echo $dauerInMinuten . " Stunden ";
        

        $dauerInMinuten ist aber eigentlich schon $dauerInStunden. Passende Variablenbezeichner helfen beim Verständnis eine Codes enorm!

        Als Ergebnis erhalte ich: 4.75 Stunden würde soweit passen. Jetzt möchte ich das ganze immer auf 1/4 Stunden aufrufen, also wären es in diesem Fall 5 Stunden. Gibt es dazu auch eine PHPFunktion?

        Wie wäre es mit den mathematischen Funktionen?
        Mir würden da besonders round() und ceiling() einfallen. ups: das heißt bei PHP nur ceil(). Aber das hättest Du selber bestimmt sofort herausgefunden ;-P

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es
        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
        1. Mit

          $startzeit = strtotime("12:20");
          $endzeit = strtotime("14:00"); 
          $dauerInMinuten = ($endzeit - $startzeit)/60/60;
          echo ceil($dauerInMinuten); 
          

          erhalte ich zwei Stunden, was falsch ist. Wenn ich ceil richtig verstanden habe wird immer auf die volle Zahl aufgerundet. Und mit round komme auch nicht weiter.

          1. Hallo

            $startzeit = strtotime("12:20");
            $endzeit = strtotime("14:00"); 
            $dauerInMinuten = ($endzeit - $startzeit)/60/60;
            echo ceil($dauerInMinuten); 
            

            erhalte ich zwei Stunden, was falsch ist.

            Öhhm, der Zeitstempel für 12:20 von dem für 14:00 abgezogen, ergibt zurückgerechnet 1h 40min, was aufgerundet sehr wohl 2h sind. Du hast dich offensichtlich etwas verfranst. :-)

            Wenn ich ceil richtig verstanden habe wird immer auf die volle Zahl aufgerundet.

            Korrekt.

            Tschö, Auge

            --
            Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
            Toller Dampf voraus von Terry Pratchett
            1. ergibt zurückgerechnet 1h 40min, was aufgerundet sehr wohl 2h sind. Du hast dich offensichtlich etwas verfranst.

              Richtig, aber ich möchte dieses dann auf 1h 45min aufrufen :) Um das geht es mir gerade. Also immer auf die nächsten 15 aufrunden.

              1. Hallo,

                Richtig, aber ich möchte dieses dann auf 1h 45min aufrufen :) Um das geht es mir gerade. Also immer auf die nächsten 15 aufrunden.

                Angenommen, du wolltest eine Zahl auf die zweite Nachkommastelle runden. Würdest du da auch sagen, das geht nicht, weil es keine ganze Zahl ist?

                Gruß
                Kalk

                1. Hallo

                  Richtig, aber ich möchte dieses dann auf 1h 45min aufrufen :) Um das geht es mir gerade. Also immer auf die nächsten 15 aufrunden.

                  Angenommen, du wolltest eine Zahl auf die zweite Nachkommastelle runden. Würdest du da auch sagen, das geht nicht, weil es keine ganze Zahl ist?

                  Das geht natürlich, ist aber nicht das gewünschte Verhalten. Einerseits ist die Stunde in 60-stel und nicht 100-stel eingeteilt und andererseits würde „plattes“ Runden, in welche Richtung auch immer, von sich aus nicht auf das nächste volle Viertel einer Stunde aufrunden. Da kommt man nur mit Rundung nicht an's Ziel, oder?

                  Tschö, Auge

                  --
                  Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
                  Toller Dampf voraus von Terry Pratchett
                  1. Aloha ;)

                    Angenommen, du wolltest eine Zahl auf die zweite Nachkommastelle runden. Würdest du da auch sagen, das geht nicht, weil es keine ganze Zahl ist?

                    Das geht natürlich, ist aber nicht das gewünschte Verhalten. Einerseits ist die Stunde in 60-stel und nicht 100-stel eingeteilt und andererseits würde „plattes“ Runden, in welche Richtung auch immer, von sich aus nicht auf das nächste volle Viertel einer Stunde aufrunden. Da kommt man nur mit Rundung nicht an's Ziel, oder?

                    Doch, genau so. Will man auf die zweite Nachkommastelle (auf das Hundertstel im Dezimalsystem) runden, so muss man im Dezimalsystem mit Hundert malnehmen und nach der Rundung wieder zurücktransformieren.

                    Will man auf Viertel runden, so muss man egal in welchem Zahlensystem mit Vier malnehmen und nach der Rundung wieder vierteln.

                    Bedenke, dass Bruchteile unabhängig davon sind, ob sie sich auf 100 Teile oder auf 60 Teile beziehen - ein Viertel ist vielleicht nicht immer 25 kleinere Teile, aber ganz sicher immer ein Viertel 😉

                    Grüße,

                    RIDER

                    --
                    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                    # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                    1. Hallo

                      Da kommt man nur mit Rundung nicht an's Ziel, oder?

                      Doch, genau so.

                      Ach?

                      Will man auf die zweite Nachkommastelle (auf das Hundertstel im Dezimalsystem) runden, so muss man im Dezimalsystem mit Hundert malnehmen und nach der Rundung wieder zurücktransformieren.

                      Sag ich doch. Nur mit runden kommt man nicht ans Ziel. Also doch nicht „doch, genau so“.

                      Tschö, Auge

                      --
                      Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
                      Toller Dampf voraus von Terry Pratchett
                      1. Aloha ;)

                        Will man auf die zweite Nachkommastelle (auf das Hundertstel im Dezimalsystem) runden, so muss man im Dezimalsystem mit Hundert malnehmen und nach der Rundung wieder zurücktransformieren.

                        Sag ich doch. Nur mit runden kommt man nicht ans Ziel. Also doch nicht „doch, genau so“.

                        Wenn du das so „eng“ fasst verstehe ich deinen Einwand nicht - @Tabellenkalk hat die Situation mit Runden auf die zweite Nachkommastelle als Vergleich gebracht, auch hier ist ein einfaches Anwenden einer Rundungsfunktion nicht ausreichend. Die Aussage „nur mit Runden“ kam ja dann von dir; ich ging davon aus, dass das, was man bei der zweiten Nachkommastelle tun muss, für dich auch darunter fällt. Tut mir leid, wenn ich dich da misinterpretiert habe.

                        Ansonsten komme ich da irgendwie auch nicht umhin, Kalk Recht zu geben - der Aufwand und die Überlegung ist exakt dieselbe, ob man mit der Rundung auf ganze Zahlen nun auf Viertel oder auf die zweite Nachkommastelle runden möchte.

                        Das ist ja eben der Grund, warum ich den Einwand nicht verstehe. Kalk hatte doch eigentlich Recht, oder nicht?!?

                        Grüße,

                        RIDER

                        --
                        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                        # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                        1. Hallo,

                          Das ist ja eben der Grund, warum ich den Einwand nicht verstehe. Kalk hatte doch eigentlich Recht, oder nicht?!?

                          Abgesehen davon, dass die round-Funktion einen entsprechenden Precision-Parameter entgegennimmt, den ich für meine Annahme stillschweigend ignoriert hatte…

                          Gruß
                          Kalk

              2. Hello,

                ergibt zurückgerechnet 1h 40min, was aufgerundet sehr wohl 2h sind. Du hast dich offensichtlich etwas verfranst.

                Richtig, aber ich möchte dieses dann auf 1h 45min aufrufen :) Um das geht es mir gerade. Also immer auf die nächsten 15 aufrunden.

                Was sind 60 Minunten in Sekunden? Was sind 45 Minuten in Sekunden? Was sind 15 Minuten in Sekunden? Was sind 1h 45min in Sekunden

                • Was sind die (1h 45m in Sekunden ausgedrückt) div (15m in Sekunden ausgedrückt)? Wie könnte man div für PHP < 7.x emulieren? Da gibt es dann intdiv()
                • Was sind die (1h 45m in Sekunden ausgedrückt) mod (15m in Sekunden ausgedrückt)?

                Du musst vermutlich schon ein bisschen jonglieren mit den arithmetischen Funktionen...

                Und floor() könnte Dir auch noch helfen, nachdem Du die Division mit / durchgeführt hast.

                Liebe Grüße
                Tom S.

                --
                Es gibt nichts Gutes, außer man tut es
                Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
              3. @@Becca

                Richtig, aber ich möchte dieses dann auf 1h 45min aufrufen :) Um das geht es mir gerade. Also immer auf die nächsten 15 aufrunden.

                Da sollte dir dieser Thread weiterhelfen.

                LLAP 🖖

                --
                “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
              4. Aloha ;)

                ergibt zurückgerechnet 1h 40min, was aufgerundet sehr wohl 2h sind. Du hast dich offensichtlich etwas verfranst.

                Richtig, aber ich möchte dieses dann auf 1h 45min aufrufen :) Um das geht es mir gerade. Also immer auf die nächsten 15 aufrunden.

                Du willst also auf VIERTEL Stunden aufrunden?

                Mit 4 multiplizieren → Aufrunden → Durch 4 Teilen.

                Wenn ich mich jetzt nicht ganz verfranst habe müsste das so gehen.

                An deinem Beispiel:

                1h40min * 4 = 100min * 4 = 400min = 6h40min
                
                6h40min ≈ 7h
                
                7h / 4= 420min / 4 = 105min = 1h45min
                

                Klar soweit? 😉

                Grüße,

                RIDER

                --
                Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                1. Klar soweit? 😉

                  Hallo,

                  ehrlich? Gar nichts ist klar. Ich habe nicht mal Bahnhof verstanden :/ Außerdem wüsste ich nicht wie ich deine Formel auf mein Beispiel anwenden könnte.

                  1. Hello,

                    Klar soweit? 😉

                    ehrlich? Gar nichts ist klar. Ich habe nicht mal Bahnhof verstanden :/ Außerdem wüsste ich nicht wie ich deine Formel auf mein Beispiel anwenden könnte.

                    Dann lieber nochmal von vorne.

                    Zuerst die Aufgabe und ihre denkbaren Lösungswege, also theoretisch, dann unter berücksichtigung der verfügbaren Funktionen uned Methoden der gewünschten Programmiersprachen. Da gibt es leider immer wieder erhebliche Diskrepanzen.

                    1. Du hast mehrere human readable Zeitangaben, z. B. "17:33" und "09:12". Beide sind ohne Datumsbezug, daher nehmen wir als erstes an, dass Sie am (Offest-)Tag 0 stattgefunden haben.

                    2. Nun möchte bitte dein Programm mit den Angaben rechnen können. Dazu wählen wir uns erst einmal eine gewünschte Genauigkeit (hier: eine Minute) und eine dazu passende Darstellung der Computers, mit der er rechnen kann (hier: eine Sekunde). Der Computer stellt für sich also jede Datums-mit-Zeit-Angabe in Sekunden seit einem Startdatum dar. Da uns das Datum selbst nicht interessiert hat (im ersten Denkschritt), sagen ir einfach, unsere Zeiten zählen ab Datumswert 0 (siehe oben). Das setzt selbstverständlich voraus, dass unsere Zeiten den Gültigkeitsbereich eeines Tages nicht verlassen!

                    3. Nun, nachdem wir unsere Zeitäquivalentwerte einfach voneinander abgezogen haben, haben wir schon mal die Differnz als Äquivalenzwert. Die könnten wir nun sofort zurückrechnen in "human readable Time", aber da haben wir ja noch das Problem mit der Quantisierung auf Viertelstunden!

                    4. Wir überlegen uns daher, vieviel Einheiten (hier Sekunden) unser Quantum (Viertelstunde) hat. Eine Viertelstunde hat 60 * 60 * 15 Sekunden. Wenn wir nun die Gesamtdifferenz durch dieses Quantum teilen und nur das gazzahlige Ergebnis berücksichtigen, (das wäre "div", was es in PHP aber nicht gibt), dann hätten wir die Anzahl der vollen Viertelstunden. Der Rest (das Modulo, in PHP duch den Operator "mod" ermittelbar) wären die übeschüssigen Sekunden, die keine volle Viertelstunde mehr ergeben.

                    5. Da es "div" (Ganzzahldivision) in PHP nicht gibt, wie könnten wir das emulieren?
                      Wir benuten einfach "/", was aber wieder floats ergibt. Das Ergebnis wird also zu groß sein. Die nächste kleinere Ganzzahl wird mit floor() ermittelt. Ein floor(a / b) müsste also einem a div b entsprechen.

                    6. Wir haben nun also die Anzahl der Viertelstunden. Sollte ein Rest (mod) übrig gebleiben sein, merken wir uns den. Nun können wir mit derselben Methode noch die vollen Stunden ermitteln (floor(vH / 4) = H)
                      und (vH mod 4 = rvh) viertelStunden mod 4 = restliche viertelStunden.

                    Wenn vorhin noch ein Überhang in Sekunden vorhanden war, musst Du die Anzahl der verbliebenen Viertelstunden bei Aufrundung noch um 1 erhöhen.

                    Nun sollte es Dir möglich sein, das Ganze in ein Formelwerk nebst Bedingeungen (nicht eine einzige Formel) umzusetzen. Mathematiker neigen oft dazu, alles in einer einzigen Formel abbilden zu wollen, Programmierer haben den Vorteil, dass sie einen Algorithmus daraus machen können.

                    Liebe Grüße
                    Tom S.

                    --
                    Es gibt nichts Gutes, außer man tut es
                    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                    1. @@TS

                      Eine Viertelstunde hat 606015 Sekunden.

                      Das hab ich mal fix zu 60 * 60 * 15 korrigiert. Die Änderung der Sterne in Malzeichen · oder × überlasse ich dir.

                      Die nächste kleinere Ganzzahl wird mit floor() ermittelt.

                      Es war aber nicht nach abrunden gefragt, sondern nach aufrunden

                      Wenn vorhin noch ein Überhang in Sekunden vorhanden war, musst Du die Anzahl der verbliebenen Viertelstunden bei Aufrundung noch um 1 erhöhen.

                      ?? Wie wär’s den gleich mit ceil()?

                      LLAP 🖖

                      --
                      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                      1. Hello,

                        @@TS

                        Eine Viertelstunde hat 606015 Sekunden.

                        Das hab ich mal fix zu 60 * 60 * 15 korrigiert. Die Änderung der Sterne in Malzeichen · oder × überlasse ich dir.

                        ? Dumm fragend guck ?

                        Abgesehen davon dass 15(m) * 60(sec) eine Viertelstunde wäre ... naja

                        Wo hatte ich da 'was zusammenengefasst, wo es mir doch gerade um eine explizite Darstellung ging?

                        Optimierungen, ob nun sofort ceil(), oder erst noch ein 6ter Schritt und deshalb floor() benutzt werden können/müssen, sollte doch der OP selber herausfinden dürfen.

                        Liebe Grüße
                        Tom S.

                        --
                        Es gibt nichts Gutes, außer man tut es
                        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                        1. @@TS

                          Eine Viertelstunde hat 606015 Sekunden.

                          Das hab ich mal fix zu 60 * 60 * 15 korrigiert. Die Änderung der Sterne in Malzeichen · oder × überlasse ich dir.

                          ? Dumm fragend guck ?

                          Du hattest 60*60*15 geschrieben. * ist in Markdown aber ein Sonderzeichen. Du hast den Kontextwechsel nicht beachtet.

                          Optimierungen, ob nun sofort ceil(), oder erst noch ein 6ter Schritt und deshalb floor() benutzt werden können/müssen, sollte doch der OP selber herausfinden dürfen.

                          Die Verwendung der passenden Funktion zählt nicht unter Optimierung.

                          LLAP 🖖

                          --
                          “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                          1. Hello Gunnar,

                            Das hab ich mal fix zu 60 * 60 * 15 korrigiert. Die Änderung der Sterne in Malzeichen · oder × überlasse ich dir.

                            ? Dumm fragend guck ?

                            *klonk* (für den 10er, der 1erweise fiel)

                            Ok, Meta-Fehler. Hab ich in dem Moment gar nicht dran gedacht :-)

                            Liebe Grüße
                            Tom S.

                            --
                            Es gibt nichts Gutes, außer man tut es
                            Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                            1. @@TS

                              Ok, Meta-Fehler. Hab ich in dem Moment gar nicht dran gedacht :-)

                              Mir den richtigen Zeichen wär das nicht passiert.

                              Ebensowenig wie man Anführungszeichen escapen muss, wenn man sie innerhalb von Stringbegrenzungszeichen verwendet, muss man Malzeichen escapen, wenn man sie in Markdown verwendet.

                              Und mit den richtigen Leerzeichen links und rechts wäre das auch mit den falschen Malzeichen nicht passiert.

                              LLAP 🖖

                              --
                              “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                              1. Hello Gunnar,

                                Ok, Meta-Fehler. Hab ich in dem Moment gar nicht dran gedacht :-)

                                Mir den richtigen Zeichen wär das nicht passiert.

                                Ebensowenig wie man Anführungszeichen escapen muss, wenn man sie innerhalb von Stringbegrenzungszeichen verwendet, muss man Malzeichen escapen, wenn man sie in Markdown verwendet.

                                Und mit den richtigen Leerzeichen links und rechts wäre das auch mit den falschen Malzeichen nicht passiert.

                                Das tut mir nun wirklich leid. Den Kursus "richtige Zeichen setzen" hat mir die ArGE leider noch nicht bewilligt. Und da der korrupte Ladrat mir ja schon vor Jahren das selbstständige Arbeiten verboten hat (er fand keine andere Möglichkeit, meine kleine erfolgreiche Zeitung zu unterdrücken - die Erdogans sind näher, als wir denken - ) kann ich mich leider auch nicht bei Dir (gegen berechtigtes Entgelt) anmelden...

                                Liebe Grüße
                                Tom S.

                                --
                                Es gibt nichts Gutes, außer man tut es
                                Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                                1. Hello,

                                  na gucke. Alles SPD-Aktionäre?

                                  @Gunnar:
                                  ich würde deine Leistung (Einzeltraining) schon gerne in Anspruch nehmen, wenn Du sie überhaupt anbietest. Aber Jede Arbeit ist ihres Lohnes wert. Und den kann ich Dir leider nicht zahlen :-)

                                  Liebe Grüße
                                  Tom S.

                                  --
                                  Es gibt nichts Gutes, außer man tut es
                                  Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                                  1. Aloha ;)

                                    na gucke. Alles SPD-Aktionäre?

                                    Nö. Aber wenn du drauf bestehst, noch was dazu zu hören:

                                    Das Internet ist kein rechtsfreier Raum. Erdogan-Vergleiche haben ungefähr gleich viel Stil wie Nazi-Vergleiche und der Ausdruck „korrupt“ mit so konkretem Bezug auf eine Person fällt schon mal unter ein Kaliber, das schlimmstenfalls auch ein juristisches Nachspiel nach sich ziehen kann. Wird wahrscheinlich nicht passieren, weil du für „Landrat“ ein n vergessen hast und da dein Landrat eher nie hier vorbeischauen wird um sich in dieser Aussage getroffen zu sehen, gilt wohl, wo kein Kläger, da kein Richter.

                                    Das ändert aber nichts daran, dass wir als Verein selfhtml Beiträgen, die juristisch und in ihrem Stil mindestens zweifelhaft sind, nur äußerst ungern eine Plattform bieten und dementsprechend steht meine Negativwertung hier auf der Begründung, dass ich deinen Beitrag in seiner Formulierung mindestens für unpassend und nicht diesem Forum angemessen halte.

                                    Man hätte hier aus Moderatorensicht im Sinne des Forums und seiner Char-[1]ta[2] wohl auch eine Sperrabstimmung oder eine Löschung tätigen können, aber ich denke eine Distanzierung, wie sie aus den Bewertungen zu lesen ist, genügt auch.

                                    Grüße,

                                    RIDER

                                    --
                                    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                                    # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[

                                    1. „Poste keine [...] Nachrichten mit potentiell illegalem oder kriminellem Inhalt. Nachrichten mit solchen Inhalten werden gelöscht.“ ↩︎

                                    2. „Folgende Nachrichten werden im SELFHTML-Forum bei Entdecken gelöscht (im Sinne der Verhaltensrichtlinien für alle Poster): [...] Beleidigende oder verunglimpfende Postings“ ↩︎

                        2. Aloha ;)

                          Optimierungen, ob nun sofort ceil(), oder erst noch ein 6ter Schritt und deshalb floor() benutzt werden können/müssen, sollte doch der OP selber herausfinden dürfen.

                          Wie jetzt, der OP stellt eine Frage, weil er die einfache Problemlösung nicht begriffen hat, du lieferst ihm eine kompliziertere Problemlösung als Antwort und erwartest dann, dass er sie selbst wieder zurück auf die einfache Problemlösung optimiert, die er ja schon nicht verstanden hatte?

                          Sokrates würde das in seinem Argumentationsstil wohl eine schwere Geburt nennen.

                          Grüße,

                          RIDER

                          --
                          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                          # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                    2. Aloha ;)

                      Nun sollte es Dir möglich sein, das Ganze in ein Formelwerk nebst Bedingeungen (nicht eine einzige Formel) umzusetzen. Mathematiker neigen oft dazu, alles in einer einzigen Formel abbilden zu wollen, Programmierer haben den Vorteil, dass sie einen Algorithmus daraus machen können.

                      Was den Nachteil mit sich zieht, dass sie manchmal auf Teufel komm raus unabhängig von den Möglichkeiten der Programmiersprache denselben Algorithmus durchziehen, selbst wenn sie dafür erst Funktionen emulieren müssen, die es nativ nicht gibt, statt das Problem mathematisch zu betrachten.

                      Wozu über 6 Schritte mit mod und div hantieren wenn man auch einfach die Stundenzahl mit 4 malnehmen, aufrunden und wieder durch 4 teilen kann, um eine Rundung auf Viertel zu erreichen?!

                      Vielleicht hättest du erstmal lesen sollen worauf der TO hier geantwortet hatte, dann wäre dir vielleicht aufgegangen, dass es einfacher geht. 😛

                      Grüße,

                      RIDER

                      --
                      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                      # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                  2. Aloha ;)

                    ehrlich? Gar nichts ist klar. Ich habe nicht mal Bahnhof verstanden :/

                    Gut, ich bin sehr für ehrliche Worte 😉 Also gerne noch einmal in kleinen Schritten.

                    Wir haben schon festgestellt, dass ceil offenbar auf ganze Stunden rundet. Nur möchtest du leider nicht auf ganze Stunden runden, sondern auf viertel Stunden. Also müssen wir uns überlegen, wie wir ceil dazu bringen, nicht mehr auf ganze Zahlen, sondern eben auf "viertel Zahlen" zu runden.

                    Dazu erstmal eine analoge Überlegung. Ich habe einen Wert, sagen wir 633, den ich auf Hunderter genau aufrunden möchte. Ich habe aber nur eine Funktion, die auf Ganze zahlen rundet. Wie könnten wir also vorgehen? Richtig. Wir verschieben das Komma um zwei Stellen. Das macht dann 6,33. Dann können wir die Funktion drüber lassen: ceil(6.33) = 7. Und dann müssen wir natürlich das Komma wieder um zwei Stellen zurückverschieben: 700. Wir haben also die Zahl auf ein Format gebracht, mit dem die Rundungsfunktion arbeiten kann, und dann haben wir das Format wieder zurückgewandelt.

                    Ist dir diese Überlegung klar?

                    Wenn ja, dann abstrahieren wir ein wenig. Was haben wir getan? Wir wollen auf HUNDERTER runden. Zunächst haben wir das Komma um zwei Stellen nach links verschoben - welcher mathematischen Operation entspricht das? - Richtig: Teilen durch hundert. Dann haben wir die Rundungsfunktion angewandt. Und zuletzt haben wir das Komma wieder zwei Stellen nach rechts verschoben, also mal hundert.

                    Erkennst du vielleicht jetzt schon den Zusammenhang?

                    Was müssen wir also tun, wenn wir nicht auf hundert, sondern auf viertel runden wollen?

                    1. Teilen durch ein Viertel ( $$\frac{1}{1/4} = 4$$, das Teilen durch ein Viertel entspricht also "Malnehmen mit 4")
                    2. Anwendung von ceil
                    3. Malnehmen mit ein Viertel (das entspricht "Teilen durch 4")

                    Ich hoffe es wurde jetzt ein wenig klarer. Ich kann gut verstehen, dass das mit den Vierteln nicht mehr so anschaulich ist, aber mit "runden auf Hunderter" kommt man vielleicht einfacher klar und das, was man mit dem Viertel machen muss, ergibt sich einfach analog.

                    Außerdem wüsste ich nicht wie ich deine Formel auf mein Beispiel anwenden könnte.

                    Das zeig ich dir gerne 😀 Aber bitte versuch wirklich zunächst zu verstehen, welche Logik dahintersteht! Solche Rundungs-Manipulationen braucht man öfter und man sollte sie verstanden haben, wenn man sich ernsthaft mit dem Programmieren befasst.


                    Jedenfalls - angewandt auf dein Beispiel:

                    $startzeit = strtotime("12:20");
                    $endzeit = strtotime("14:00"); 
                    $dauerInStunden = ($endzeit - $startzeit)/60/60;
                    $dauerInStundenAufViertelGerundet = ceil($dauerInStunden * 4) / 4;
                    

                    Die Variablenbezeichner sollen nur verdeutlichen was passiert.

                    Wenn du es gerne kompakt hättest, in einer Zeile:

                    $dauerInGerundetenStunden = ceil(($endzeit - $startzeit)/900)/4;
                    

                    (Ich habe hier benutzt, dass 1/60 * 1/60 * 4 = 1/900)

                    Grüße,

                    RIDER

                    P.S.: Wer glaubt, es stelle ein Problem dar, dass wir ja hier mit Zeitwerten (60er-System) rechnen, der irrt! Ein Viertel ist ein Viertel, egal ob das jetzt 1/4m = 0,25m = 25cm sind oder 1/4h = 0,25h = 15min! Man muss lediglich darauf achten, Bruchteile richtig in die nächstkleinere Einheit umzuwandeln - für die Rundung von Vierteln spielt das überhaupt keine Rolle.

                    --
                    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                    # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
      2. Tach!

        Als Ergebnis erhalte ich: 4.75 Stunden würde soweit passen. Jetzt möchte ich das ganze immer auf 1/4 Stunden aufrufen, also wären es in diesem Fall 5 Stunden. Gibt es dazu auch eine PHPFunktion?

        Wenn man mit Mathematik auf Kriegsfuß steht und die rechnerische Lösung nicht hinbekommt, kann man auch eine logische Variante nehmen.

        Dazu wird die Sekundenzahl erstmal wieder in die "lesbaren" Einheiten Stunde und Minute gebracht. Anschließend kann man mit drei if-Konstrukten die Sekunden in die nächstgelegene Zahl bringen.

        wenn Sekunden größer als 0 dann Sekunden = 15
        wenn Sekunden größer als 15 dann Sekunden = 30
        wenn Sekunden größer als 30 dann Sekunden = 45
        wenn Sekunden größer als 45 dann Sekunden = 0 sowie Stunden = Stunden +1
        

        Ist natürlich aufwendiger als der mathematische Einzeiler.

        Und mir ist auch schon Fremdcode über den Weg gelaufen, da wurde das Runden auf 5 Minuten-Werte mit einem switch und 60 x case in Fünfergruppen erledigt.

        dedlfix.

        1. Hallo,

          Dazu wird die Sekundenzahl erstmal wieder in die "lesbaren" Einheiten Stunde und Minute gebracht. Anschließend kann man mit drei if-Konstrukten die Sekunden in die nächstgelegene Zahl bringen.

          Wobei man natürlich auf die richtige Reihenfolge achten oder mit genauen Bereichen arbeiten sollte.

          wenn Sekunden größer als 0 dann Sekunden = 15
          wenn Sekunden größer als 15 dann Sekunden = 30
          wenn Sekunden größer als 30 dann Sekunden = 45
          wenn Sekunden größer als 45 dann Sekunden = 0 sowie Stunden = Stunden +1
          

          Ist natürlich aufwendiger als der mathematische Einzeiler.

          Und haut so nicht hin. (edit: selbst wenn man auf richtige Einheiten geachtet hätte)

          Gruß
          Kalk

          1. Tach!

            wenn Sekunden größer als 0 dann Sekunden = 15
            wenn Sekunden größer als 15 dann Sekunden = 30
            wenn Sekunden größer als 30 dann Sekunden = 45
            wenn Sekunden größer als 45 dann Sekunden = 0 sowie Stunden = Stunden +1
            

            Ist natürlich aufwendiger als der mathematische Einzeiler.

            Und haut so nicht hin.

            Ja, stimmt. Das hätte dann auch der Probelauf ergeben. Der jeweils nachfolgende Vergleich muss noch hinter ein "ansonsten".

            dedlfix.

            1. Hallo,

              Der jeweils nachfolgende Vergleich muss noch hinter ein "ansonsten".

              Inwiefern hilft das dagegen, dass du in deinem Konstrukt einen Sekundenwert von z.B. 50 auf 15 festlegst?

              Gruß
              Kalk

              1. Tach!

                Der jeweils nachfolgende Vergleich muss noch hinter ein "ansonsten".

                Inwiefern hilft das dagegen, dass du in deinem Konstrukt einen Sekundenwert von z.B. 50 auf 15 festlegst?

                Gut, dann doch zurück zu meinem ersten Gedanken, den ich verworfen hatte, weil es in dieser Richtung einfacher aussah.

                wenn Sekunden größer als 45 dann Sekunden = 0 sowie Stunden = Stunden +1 ansonsten
                wenn Sekunden größer als 30 dann Sekunden = 45 ansonsten
                wenn Sekunden größer als 15 dann Sekunden = 30 ansonsten
                wenn Sekunden größer als 0 dann Sekunden = 15
                

                dedlfix.

                1. Hallo,

                  Gut, dann doch zurück zu meinem ersten Gedanken, den ich verworfen hatte, weil es in dieser Richtung einfacher aussah.

                  ja, das meinte ich mit „Reihenfolge beachten“. Bereich anzugeben ist natürlich doof. Am geschicktesten ist wahrscheinlich im Vergleich nicht auf „größer als", sondern „kleiner gleich“ zu testen: wenn kleiner gleich 15 -> 15, ansonsten …

                  Gruß
                  Kalk

                  1. Tach!

                    Am geschicktesten ist wahrscheinlich im Vergleich nicht auf „größer als", sondern „kleiner gleich“ zu testen: wenn kleiner gleich 15 -> 15, ansonsten …

                    Nicht wirklich, das dreht nur an der Logik. Und fügt hinzu, dass die 15 nochmal auf 15 gesetzt wird, obwohl sie das schon ist.

                    dedlfix.

                    1. Hello,

                      Am geschicktesten ist wahrscheinlich im Vergleich nicht auf „größer als", sondern „kleiner gleich“ zu testen: wenn kleiner gleich 15 -> 15, ansonsten …

                      Nicht wirklich, das dreht nur an der Logik. Und fügt hinzu, dass die 15 nochmal auf 15 gesetzt wird, obwohl sie das schon ist.

                      Man müsste dann auch die Minuten[1] (ich meine es ging nicht um Sekunden) abfangen, wenn der Wert == 0 ist. Warum sollte man die auf 15 setzen, wenn sie doch schon einen der bevorzugten Werte haben?

                      [1] und warum sollte man die Stunden um eins hochzählen, wenn die Sekunden einen Überschlag haben?
                      aber hoppla, auch das könnte tatsächlich passieren! WEnn es hier also wirklich um Sekunden gehen sollte, müsste man die gesamte Zeitkaskade (über Sekunden, Minuten, Stunden, Tage, ...) behandeln.

                      Die logische Lösung ist also keinesfalls so trivial. Rechnen mit Datum und Zeit war noch nie einfach!

                      Liebe Grüße
                      Tom S.

                      --
                      Es gibt nichts Gutes, außer man tut es
                      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                      1. Hallo,

                        abfangen, wenn der Wert == 0 ist.

                        upps, ja, hab ich wohl übersehen.

                        Rechnen mit Datum und Zeit war noch nie einfach!

                        Vielleicht sollte man doch über die Rundung der Zeit nachdenken.

                        Gruß
                        Kalk

                      2. Tach!

                        [1] und warum sollte man die Stunden um eins hochzählen, wenn die Sekunden einen Überschlag haben?
                        aber hoppla, auch das könnte tatsächlich passieren! WEnn es hier also wirklich um Sekunden gehen sollte, müsste man die gesamte Zeitkaskade (über Sekunden, Minuten, Stunden, Tage, ...) behandeln.

                        Ich gehe mal stillschweigend von einem Anwendungsfall aus, bei dem nachts geschlafen wird beziehungsweise dass der Tageswechsel deutlich außerhalb der Geschäftszeit liegt und damit unbeachtet gelassen werden kann.

                        Die logische Lösung ist also keinesfalls so trivial. Rechnen mit Datum und Zeit war noch nie einfach!

                        Kommt auf den wirklichen Anwendungsfall an. Wenn man sämtliche Uhrzeiten und auch die zweimal im Jahr stattfindenden Zeitzonenwechsel berücksichtigen muss, dann wird es ein wenig umfangreicher. Beim nächsten Ereignis dieser Art müssten statt von 1:50 auf 2:00 zu gehen das Ergebnis 3:00 werden.

                        Das bekommt man übrigens auch mit der mathematischen Methode nicht hin, weil die ohne Berücksichtigung des Datums arbeitet und diesen Sonderfall nicht sehen kann.

                        dedlfix.

                        1. @@dedlfix

                          Ich gehe mal stillschweigend von einem Anwendungsfall aus, bei dem nachts geschlafen wird beziehungsweise dass der Tageswechsel deutlich außerhalb der Geschäftszeit liegt und damit unbeachtet gelassen werden kann.

                          Davon auszugehen, dass irgendwas „ganz bestimmt“ nicht vorkommt, ist selten eine gute Idee.

                          LLAP 🖖

                          --
                          “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                        2. Hello,

                          najaa, da hat jedenfalls jemand geschlafen ;-P

                          Warum sollte man sonst die Stunde hochzählen, wenn die Sekunden einen Überschlag haben?

                          Liebe Grüße
                          Tom S.

                          --
                          Es gibt nichts Gutes, außer man tut es
                          Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                        3. Aloha ;)

                          aber hoppla, auch das könnte tatsächlich passieren! WEnn es hier also wirklich um Sekunden gehen sollte, müsste man die gesamte Zeitkaskade (über Sekunden, Minuten, Stunden, Tage, ...) behandeln.

                          Ich gehe mal stillschweigend von einem Anwendungsfall aus, bei dem nachts geschlafen wird beziehungsweise dass der Tageswechsel deutlich außerhalb der Geschäftszeit liegt und damit unbeachtet gelassen werden kann.

                          Die logische Lösung ist also keinesfalls so trivial. Rechnen mit Datum und Zeit war noch nie einfach!

                          Kommt auf den wirklichen Anwendungsfall an. Wenn man sämtliche Uhrzeiten und auch die zweimal im Jahr stattfindenden Zeitzonenwechsel berücksichtigen muss, dann wird es ein wenig umfangreicher. Beim nächsten Ereignis dieser Art müssten statt von 1:50 auf 2:00 zu gehen das Ergebnis 3:00 werden.

                          Das bekommt man übrigens auch mit der mathematischen Methode nicht hin, weil die ohne Berücksichtigung des Datums arbeitet und diesen Sonderfall nicht sehen kann.

                          Das ist im vorliegenden Fall alles vollkommen irrelevant, weil eben nicht mit Uhrzeiten o.ä. gerechnet wird, sondern mit Zeitdifferenzen für die, wenn man den Timestamp hernimmt, völlig irrelevant ist, welche Irregularitäten ein Kalender der betreffenden Tage eventuell ausweißt oder nicht.

                          Grüße,

                          RIDER

                          --
                          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                          # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                          1. Tach!

                            Das ist im vorliegenden Fall alles vollkommen irrelevant, weil eben nicht mit Uhrzeiten o.ä. gerechnet wird, sondern mit Zeitdifferenzen für die, wenn man den Timestamp hernimmt, völlig irrelevant ist, welche Irregularitäten ein Kalender der betreffenden Tage eventuell ausweißt oder nicht.

                            Stimmt natürlich auch wieder. Aber Vorsicht muss man dann eventuell noch an der strtotime()-Stelle walten lassen, denn da ist die Eingabe eine Uhrzeit, und an den beiden Umschalttagen kommt dann im nächsten Schritt eine falsche Differenz raus. Zumindest wenn diese Uhrzeiten vor dem Aufstehen für den Anwendungsfall relevant sind.

                            dedlfix.

                            1. Aloha ;)

                              Aber Vorsicht muss man dann eventuell noch an der strtotime()-Stelle walten lassen, denn da ist die Eingabe eine Uhrzeit, und an den beiden Umschalttagen kommt dann im nächsten Schritt eine falsche Differenz raus. Zumindest wenn diese Uhrzeiten vor dem Aufstehen für den Anwendungsfall relevant sind.

                              Richtig, auf den Gedanken bin ich auch gekommen. Vielleicht kann man dem (der) TO(in) mal aus grundsätzlichen Erwägungen noch nahelegen, nicht nur Uhrzeit, sondern auch das Datum grundsätzlich mitverarbeiten zu lassen, um sowas von vornherein aus dem Weg zu gehen.

                              Oder sie könnte grundsätzlich auf strtotime verzichten, wen es wirklich nur um abstrakte Uhrzeiten mit Stunden- und Minutenanteil ohne Verknüpfung zu einem Tag geht, den Uhrzeit-String am ":" aufsplitten und dann den ersten Teil plus den zweiten Teil geteilt durch 60 zum Rechnen hernehmen.

                              Grüße,

                              RIDER

                              --
                              Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                              # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                      3. Aloha ;)

                        aber hoppla, auch das könnte tatsächlich passieren!

                        Es gibt hier keinen Überschlag. Es geht hier im gesamten Posting darum, eine Zeitdifferenz in Stunden zu runden. So what?

                        WEnn es hier also wirklich um Sekunden gehen sollte, müsste man die gesamte Zeitkaskade (über Sekunden, Minuten, Stunden, Tage, ...) behandeln.

                        Mehrfaches Runden war noch nie eine gute Idee, weil dadurch der Rundungsfehler massiv mitvergrößert wird.

                        Die logische Lösung ist also keinesfalls so trivial. Rechnen mit Datum und Zeit war noch nie einfach!

                        Das kommt drauf an, ob man es sich einfach macht oder nicht. Der (die) TO(in) macht es sich einfach, indem er (sie) mit Stunden und Bruchteilen von Stunden rechnet, für die exakt die gleichen Regeln gelten wie für andere Brüche bzw. Dezimalzahlen. Sofern man sicherstellt, dass die Berechnung keine Umrechnung beinhaltet gibt es keinerlei Problem damit, mit Datums- und Zeitwerten zu rechnen.

                        Grüße,

                        RIDER

                        --
                        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                        # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
        2. @@dedlfix

          Und mir ist auch schon Fremdcode über den Weg gelaufen, da wurde das Runden auf 5 Minuten-Werte mit einem switch und 60 x case in Fünfergruppen erledigt.

          a/k/a Gammelcode

          LLAP 🖖

          --
          “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
  2. Liebe(r) Becca,

    Beispiel:
    7:15 Uhr - 12:00 Uhr = 4,45 min

    ist das jetzt ernst gemeint? Soll Deine Berechnung dieselbe Genauigkeit haben? So spontan hätte ich eine Differenz von mehr als sechs Stunden (6:00h) geschätzt, aber knappe viereinhalb Minuten...?

    Dir kann ich helfen, aber dazu brauche ich sehr genaue Angaben, wie die Differenz bestimmt werden soll. Bis dahin verweise ich Dich auf die UNIX-Zeitangabe in Sekunden seit dem 1.1.1970 um 00:00 Uhr, deren Timestamp (Zeitstempel) einen Ganzzahlwert hat. Am 1.1.1970 um 00:00 Uhr war dieser Wert "0". Heute um 15:30 Uhr war der Wert "1492702200". Jede andere Uhrzeit kann man ebenso in Sekunden umrechnen und dann die Differenz in Sekunden ermitteln, die man dann nach Belieben in Minuten und Stunden umrechnen kann.

    Nützliche PHP-Funktionen:

    Wenn es Dir um Angaben ohne Tagesdatum geht, dann rechnest Du schlicht in Sekunden. Dabei gilt (wie Du sicher längst weißt) die alte Formel: $sec = $h * 60 * 60 + $m * 60 + $s;, wobei $h die Stunden, $m die Minuten und $s die Sekunden einer Uhrzeit sind. Das Ausgeben in Stunden/Minuten/Sekunden geht mit dem modulo-Operator (simple Mathematik: Rest einer Division), der in PHP mit dem %-Zeichen geschrieben wird:

    function h_m_s ($sec) {
        return sprintf(
            "%02d:%02d'%02d''",
            floor($sec / (60*60)),
            floor(($sec % (60*60)) / 60),
            $sec % 60
        );
    }
    
    $h = 4;
    $m = 39;
    $s = 59;
    
    $sec = $h * 60 * 60 + $m * 60 + $s;
    
    echo $sec,"s = ",h_m_s ($sec); // 16799s = 04:39'59''
    

    So, und nun kannst Du Sekunden von einander substrahieren, gell?

    Liebe Grüße,

    Felix Riesterer.

    1. Hallo,

      So spontan hätte ich eine Differenz von mehr als sechs Stunden (6:00h) geschätzt, aber knappe viereinhalb Minuten...?

      Bei anderen wollen die Wochen nicht enden, bei dir ists der Vormittag? Becca hat sich bloß in der Einheit vertan.

      Gruß
      Kalk

      1. @@Tabellenkalk

        So spontan hätte ich eine Differenz von mehr als sechs Stunden (6:00h) geschätzt, aber knappe viereinhalb Minuten...?

        Bei anderen wollen die Wochen nicht enden, bei dir ists der Vormittag? Becca hat sich bloß in der Einheit vertan.

        Und im Trennzeichen. Und im Vorzeichen.

        Oder, um Felix aus der Patsche zu helfen: 7:15 Uhr − 12:00 Uhr = 19:15 Stunden, das sind deutlich mehr als sechs.

        LLAP 🖖

        --
        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
        1. 7:15 Uhr − 12:00 Uhr = 19:15 Stunden

          Hallo, darf ich fragen, wie ihr auf dieses Ergebnis kommt? Ich habe noch kein Bierchen intus 😕

          1. @@Becca

            7:15 Uhr − 12:00 Uhr = 19:15 Stunden

            Hallo, darf ich fragen, wie ihr auf dieses Ergebnis kommt?

            Na von 7:15 Uhr in der Zeit rückwärts gegangen bis zum vorigen Mittag.

            Ich habe noch kein Bierchen intus 😕

            Warum siehst du mich dann doppelt?

            LLAP 🖖

            --
            “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory